国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現Smtplib發送帶有各種附件的郵件實例

2020-02-16 01:39:23
字體:
來源:轉載
供稿:網友

這兩天對Python的郵件模塊比較感興趣,于是就查了查資料。同時在實際的編碼過程中也遇到了各種各樣的問題。下面我就來分享一下我與smtplib的故事。

前提條件

我的上一篇博文里面講解了,發送郵件必須的條件。這里同樣是適用的。大致就是要開啟郵箱的SMPT/POP服務等等。

核心知識點

因為今天主要講解的是如何發送帶有附件的郵件,那么核心肯定是附件了。怎么才能發附件呢?

其實我們換個思路,就不難理解了。因為我們發送郵件,經過了應用層–>> 傳輸層–>> 網絡層–>>數據鏈路層–>>物理層。這一系列的步驟,全都變成了比特流了。所以無論是純文本,圖片,亦或是其他類型的文件。在比特流的面前,都是平等的。所以我們發送附件,也是按照發送純文本的模式來做就行,只不過加上一些特殊的標記即可。

/# 首先是xlsx類型的附件xlsxpart = MIMEApplication(open('test.xlsx', 'rb').read())xlsxpart.add_header('Content-Disposition', 'attachment', filename='test.xlsx')msg.attach(xlsxpart)/# jpg類型的附件jpgpart = MIMEApplication(open('beauty.jpg', 'rb').read())jpgpart.add_header('Content-Disposition', 'attachment', filename='beauty.jpg')msg.attach(jpgpart)/# mp3類型的附件mp3part = MIMEApplication(open('kenny.mp3', 'rb').read())mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3')msg.attach(mp3part)

經過這三小段的代碼,想必你已經很清楚了吧。無非就是使用MIMEApplication進行包裝一下,然后設置一下內容。最后添加到郵件內容。就是這幾步,就搞定了。

完整的代碼

# coding:utf-8#  __author__ = 'Mark sinoberg'#  __date__ = '2016/5/26'#  __Desc__ = 實現發送帶有各種附件類型的郵件import urllib, urllib2import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.application import MIMEApplicationusername = '156408XXXXX@163.com'password = 'XXXXXXXX'sender = usernamereceivers = ','.join(['10643XXXX2@qq.com'])# 如名字所示: Multipart就是多個部分msg = MIMEMultipart()msg['Subject'] = 'Python mail Test'msg['From'] = sendermsg['To'] = receivers# 下面是文字部分,也就是純文本puretext = MIMEText('我是純文本部分,')msg.attach(puretext)# 下面是附件部分 ,這里分為了好幾個類型# 首先是xlsx類型的附件xlsxpart = MIMEApplication(open('test.xlsx', 'rb').read())xlsxpart.add_header('Content-Disposition', 'attachment', filename='test.xlsx')msg.attach(xlsxpart)# jpg類型的附件jpgpart = MIMEApplication(open('beauty.jpg', 'rb').read())jpgpart.add_header('Content-Disposition', 'attachment', filename='beauty.jpg')msg.attach(jpgpart)# mp3類型的附件mp3part = MIMEApplication(open('kenny.mp3', 'rb').read())mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3')msg.attach(mp3part)## 下面開始真正的發送郵件了try:  client = smtplib.SMTP()  client.connect('smtp.163.com')  client.login(username, password)  client.sendmail(sender, receivers, msg.as_string())  client.quit()  print '帶有各種附件的郵件發送成功!'except smtplib.SMTPRecipientsRefused:  print 'Recipient refused'except smtplib.SMTPAuthenticationError:  print 'Auth error'except smtplib.SMTPSenderRefused:  print 'Sender refused'except smtplib.SMTPException,e:  print e.message            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新营市| 老河口市| 宁武县| 微山县| 沙河市| 库车县| 米易县| 固原市| 通渭县| 尼木县| 固原市| 康乐县| 平江县| 海阳市| 青州市| 咸阳市| 邵武市| 城固县| 沈丘县| 松桃| 布拖县| 景洪市| 禄劝| 潜山县| 泸水县| 通海县| 萨迦县| 仁布县| 秭归县| 博爱县| 襄樊市| 抚远县| 西乌珠穆沁旗| 汉阴县| 巴林右旗| 囊谦县| 新竹市| 诸暨市| 获嘉县| 宿迁市| 余江县|