python发送邮件及附件
生活随笔
收集整理的這篇文章主要介紹了
python发送邮件及附件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天給大伙說說python發(fā)送郵件,官方的多余的話自己去百度好了,還有一大堆文檔說實(shí)話不到萬不得已的時(shí)候一般人都不會去看,回歸主題:
本人是mac如果沒有按照依賴模塊的請按照下面的截圖安裝
導(dǎo)入模塊如果沒有錯(cuò)誤,表示已經(jīng)安裝成功。
Python發(fā)送一個(gè)未知MIME類型的文件附件其基本思路如下:
1. 構(gòu)造MIMEMultipart對象做為根容器
2. 構(gòu)造MIMEText對象做為郵件顯示內(nèi)容并附加到根容器
3. 構(gòu)造MIMEBase對象做為文件附件內(nèi)容并附加到根容器
a. 讀入文件內(nèi)容并格式化
b. 設(shè)置附件頭
4. 設(shè)置根容器屬性
5. 得到格式化后的完整文本
6. 用smtp發(fā)送郵件
實(shí)例代碼:
1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 4 import smtplib5 from email.mime.multipart import MIMEMultipart6 from email.mime.text import MIMEText7 from email.mime.application import MIMEApplication8 9 class Mailer(object): 10 def __init__(self,maillist,mailtitle,mailcontent): 11 self.mail_list = maillist 12 self.mail_title = mailtitle 13 self.mail_content = mailcontent 14 15 self.mail_host = "smtp.163.com" 16 self.mail_user = "your email name" 17 self.mail_pass = "your email password" 18 self.mail_postfix = "163.com" 19 20 def sendMail(self): 21 22 me = self.mail_user + "<" + self.mail_user + "@" + self.mail_postfix + ">" 23 msg = MIMEMultipart() 24 msg['Subject'] = 'Python mail Test' 25 msg['From'] = me 26 msg['To'] = ";".join(self.mail_list) 27 28 #puretext = MIMEText('<h1>你好,<br/>'+self.mail_content+'</h1>','html','utf-8') 29 puretext = MIMEText('純文本內(nèi)容'+self.mail_content) 30 msg.attach(puretext) 31 32 # jpg類型的附件 33 jpgpart = MIMEApplication(open('/home/mypan/1949777163775279642.jpg', 'rb').read()) 34 jpgpart.add_header('Content-Disposition', 'attachment', filename='beauty.jpg') 35 msg.attach(jpgpart) 36 37 # 首先是xlsx類型的附件 38 #xlsxpart = MIMEApplication(open('test.xlsx', 'rb').read()) 39 #xlsxpart.add_header('Content-Disposition', 'attachment', filename='test.xlsx') 40 #msg.attach(xlsxpart) 41 42 # mp3類型的附件 43 #mp3part = MIMEApplication(open('kenny.mp3', 'rb').read()) 44 #mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3') 45 #msg.attach(mp3part) 46 47 # pdf類型附件 48 #part = MIMEApplication(open('foo.pdf', 'rb').read()) 49 #part.add_header('Content-Disposition', 'attachment', filename="foo.pdf") 50 #msg.attach(part) 51 52 try: 53 s = smtplib.SMTP() #創(chuàng)建郵件服務(wù)器對象 54 s.connect(self.mail_host) #連接到指定的smtp服務(wù)器。參數(shù)分別表示smpt主機(jī)和端口 55 s.login(self.mail_user, self.mail_pass) #登錄到你郵箱 56 s.sendmail(me, self.mail_list, msg.as_string()) #發(fā)送內(nèi)容 57 s.close() 58 return True 59 except Exception, e: 60 print str(e) 61 return False 62 63 64 if __name__ == '__main__': 65 #send list 66 mailto_list = ["aaa@lsh123.com","bbb@163.com"] 67 mail_title = 'Hey subject' 68 mail_content = 'Hey this is content' 69 mm = Mailer(mailto_list,mail_title,mail_content) 70 res = mm.sendMail() 71 print res?
轉(zhuǎn)載于:https://www.cnblogs.com/zhangyuhang3/p/6873632.html
總結(jié)
以上是生活随笔為你收集整理的python发送邮件及附件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#使用自定义字体
- 下一篇: C++编译器对属性和方法的处理机制