python 收email实例 ,只返回第一封邮件的信息

来源:互联网 发布:淘宝子账户怎么登录 编辑:程序博客网 时间:2024/05/19 02:31

python接收邮件示例

 

import base64
import imaplib
from email.mime.text import MIMEText 
import email

import base64import imaplibfrom email.mime.text import MIMEText  import email

 

def get_first_unread_email_title_body(self):        """获取未读邮件的第一封的标题和内容        返回值:        subj:第一封邮件的标题,无邮件则返回None        bdy:第一封邮件的内容,无邮件则返回None"""        conn = imaplib.IMAP4_SSL("smtp.xxxx.com.cn", 993)        conn.login("username", "password")        conn.select()        typ, data = conn.search(None, 'UNSEEN')        subj =[]        bdy=[]        try:            for num in data[0].split():                typ, msg_data = conn.fetch(num, '(RFC822)')                for response_part in msg_data:                    if isinstance(response_part, tuple):                        msg = email.message_from_string(response_part[1])#获取消息体                        subject=msg['Subject']                                           #print subject                         subj.append(subject)                        payload=msg.get_payload()                        body=self.extract_body(payload)                        #lens = len(body)                        #print lens,"message length"                        #lenx = lens-(lens%4 if lens%4 else 4)                        #try:                            #result = base64.decodestring(body[:lenx])                        #except:                            #pass                        print  body#base64.decodestring(body)                        bdy.append(body)                typ, response = conn.store(num, '+FLAGS', r'(\Seen)')        finally:            print "finished!"            try:                conn.close()            except:                pass            conn.logout()        if len(bdy)>0:            print subj[0],bdy[0]            return subj[0],bdy[0]        else:            print 'None','None'            return 'None','None'

0 0
原创粉丝点击