python收发邮件(demo)--smtplib--poplib

发邮件

#encoding=utf-8

import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart

if __name__ == '__main__':
        fromaddr = 'BuGaoSuNi@163.com'
        toaddrs = ['136xxxx1475@139.com', 'xxxx@xx.com']
        subject = 'smtplib test.'

        content = 'smtplib test: hello, smtplib ! Can you see it ?'
        textApart = MIMEText(content)

        imageFile = '/tmp/code2.png'
        imageApart = MIMEImage(file(imageFile, 'rb').read(), imageFile.split('.')[-1])
        imageApart.add_header('Content-Disposition', 'attachment', filename=imageFile.split('/')[-1])

        m = MIMEMultipart()
        m.attach(textApart)
        m.attach(imageApart)
        m['Subject'] = subject

        server = smtplib.SMTP('smtp.163.com')
        server.login(fromaddr,'BuGaoSuNi')
        server.sendmail(fromaddr, toaddrs, m.as_string())
        server.quit()



收邮件

#encoding=utf-8
import poplib
import email

if __name__ == '__main__':
        M = poplib.POP3('pop.163.com')
        M.user('BuGaoSuNi@163.com')  
        M.pass_('BuGaoSuNi')
   
        #打印有多少封信  
        numMessages = len(M.list()[1])  
        print 'num of messages', numMessages  

   
        #从最老的邮件开始遍历
        for i in range(numMessages):
                m = M.retr(i+1)
                msg = email.message_from_string('\n'.join(m[1]))
                #allHeaders = email.Header.decode_header(msg)
                aimHeaderStrs = {'from':'', 'to':'', 'subject':''}
                for aimKey in aimHeaderStrs.keys():
                        aimHeaderList = email.Header.decode_header(msg[aimKey])
                        for tmpTuple in aimHeaderList:
                                if tmpTuple[1] == None:
                                        aimHeaderStrs[aimKey] += tmpTuple[0]
                                else:
                                        aimHeaderStrs[aimKey] += tmpTuple[0].decode(tmpTuple[1]) #转成unicode
                for aimKey in aimHeaderStrs.keys():
                        print aimKey,':',aimHeaderStrs[aimKey].encode('utf-8') #转成utf-8显示

                for part in msg.walk(): #遍历所有payload
                        contenttype = part.get_content_type()
                        filename = part.get_filename()
                        if filename: #and contenttype=='application/octet-stream':
                                #保存附件
                                data = part.get_payload(decode=True)
                                file("mail%d.attach.%s" % (i+1,filename),'wb').write(data)
                        elif contenttype == 'text/plain':
                                #保存正文
                                data = part.get_payload(decode=True)
                                charset = part.get_content_charset('ios-8859-1')
                                file('mail%d.txt' % (i+1), 'w').write(data.decode(charset).encode('utf-8'))




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值