开源python项目email程序,欢迎大家参加。



QUOTE:
原帖由 myvm 于 2005-11-7 09:27 发表
我也想参加,可刚刚看完python,之前有bash shell 编程经验,可没用项目经验,
怕心有余,而力不足。

都是没什么经验的,目的就是学习.


QUOTE:
原帖由 limodou 于 2005-11-7 08:51 发表
最基本的可以使用email模块,还有其它的可能更现成的email的模块,不过不是标准模块了。

你说的是什么模块?可以看看参考一下.
这个是以前在pypi上看到的,你可以去pypi上搜一下。
基本的功能函数.

[Copy to clipboard] [ - ]
CODE:
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.Header import Header
from email.Header import decode_header
from types import *
import smtplib,poplib,string,sys,os,email
import cPickle

def loadSaveMail():
    maillist=[]
    file=open('mail.box','r')
    while 1:
        try:
            maillist.append(cPickle.load(file))
        except EOFError:
            break
    return maillist

def loadSub():
    headlist=[]
    file=open('mailsub.box','r')
    while 1:
        try:
            headlist.append(cPickle.load(file))
        except EOFError:
            break
    return headlist
   
def mailmessagelist():
    list,octet=loadmail()
    maillist=processmail(list)
    return mailHeader(maillist[0],octet[0])

def sendconfig():
    SMTPname=raw_input('SMTPserverName?')
    SMTPuser=raw_input('SMTPusername?')
    SMTPpass=raw_input('SMTPServerPassword?')
    To=raw_input('To?')
    From=raw_input('From?')
   
def popconfig():
##    POPname=raw_input('POPServerName?')
##    POPuser=raw_input('POPusername?')
##    POPpass=raw_input('POPpassword?')
    POPname='pop.mail.yahoo.com.cn'
    POPuser='jason_learn'
    POPpass='python'
    return POPname,POPuser,POPpass

def loadmail():
    server=POPconnect()
    maillist=[]
    mailsize=[]
    try:
        (mailCount,mailByte)=server.stat()
        for i in range(0,mailCount):
            (hdr,message,octet)=server.retr(i+1)
            maillist.append(email.message_from_string(string.join(message,'n')))
            mailsize.append(octet)
        for mail in maillist:
            cPickle.dump([mail],open('mail.box','a'))
            
        return maillist,mailsize
    finally:
        server.quit()

   
def processmail(originalmail):
    processmaillist=[]
    for i in range(len(mailList)):
        processmaillist.append(email.message_from_string(mailList[i]))
    cPickle.dump(processmaillist,open("mail.box",'a'))
    return processmaillist
   

def POPconnect():
    sname,user,passwd=popconfig()
    server=poplib.POP3(sname)
    server.user(user)
    server.pass_(passwd)
    print server.getwelcome()
    return server

def SMTPconnect():
    server=smtplib.SMTP(sname)
    server.login(user,passwd)
    return server

def proFrom(From):
    temp=[]
    for head in decode_header(From):
        if head[1]=='utf-8':
            temp.append(unicode(head[0],'utf-8'))
        else:
            temp.append(head[0])
    return string.join(temp,'')

def proSubject(Subject):
    temp=[]
    for head in decode_header(Subject):
        if head[1]=='utf-8':
            temp.append(unicode(head[0],'utf-8'))
        else:
            temp.append(head[0])
    return string.join(temp,'')

def mailHeader(mail,size):
    header=[]
    header.append(proFrom(mail.get('from')))
    header.append(proSubject(mail.get('subject')))
    header.append(mail.get('date'))
    header.append(str(size/1024)+"K")
    cPickle.dump(header,open("mailsub.box",'a'))
    return header

def showmessage1(mail):
    item = iter([mail])
    stack = [item]
    content=[]
    while stack:
        item = stack[-1]
        try:
            mail = item.next()
            if mail.is_multipart():
                nitem = iter([m for m in mail.get_payload()])
                stack.append(nitem)
            else:
                type=mail.get_content_charset()
                if type==None:
                    content.append(mail.get_payload())
                else:
                    content.append(unicode(mail.get_payload(decode='base64'),type))
                    
        except StopIteration:
            stack.pop()
    return string.join(content,'')

太好了,感谢给新人学习的机会
解信这个最重要的环节怎么没有提到?????
还有mime的编码格式也没有提到阿
没有这个你怎么解带有附件的信?
from email.Header import decode_header
处理信头。

from email.MIMEText import MIMEText
处理编码

from email.MIMEMultipart import MIMEMultipart
处理附件。

仔细看第一页给的帮助连接。  

这两天忙着应聘,过两天写详细的帮助上来。感兴趣的朋友先看看上面那些函数,处理基本邮件够用。
目前没有加处理附件的函数。
找到工作了,试用期内,工作比较忙,email项目这段时间内肯定没有时间作,毕竟吃饭重要。
请大家多多包涵.


QUOTE:
原帖由 jasonnbfan 于 2005-11-18 18:57 发表
找到工作了,试用期内,工作比较忙,email项目这段时间内肯定没有时间作,毕竟吃饭重要。
请大家多多包涵.

可惜!