中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3如何使用SMTP發送帶附件郵件?

發布時間:2020-06-23 10:10:42 來源:億速云 閱讀:160 作者:清晨 欄目:開發技術

不懂Python3如何使用SMTP發送帶附件郵件??其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。

一、設置開啟SMTP服務并獲取授權碼

可以參考第一篇文章,這里不再贅述:【一】https://www.jb51.net/article/142220.htm

二、使用Python3 發送帶附件的郵件

0.使用的環境為:

Python 3.6.3 (64bit)
PyCharm 2017.3 (64bit)

1.注意事項:

在調用smtplib,發送簡單郵件的時候使用smtplib.SMTP()方法使沒有問題的。

但是如果是郵件存在附件的情況下,還使用smtplib.SMTP()方法,就可能會發送失敗,報“遠程主機拒接連接”的錯誤;

這是因為我們發送郵件時,調用第三方的郵件服務器(如網易163郵箱,QQ郵箱等),這些郵件服務器出于安全考慮,有時可能就會不允許使用簡單的,未經加密的smtplib.SMTP()方法直接發送郵件,而必須使用安全的,經過加密傳輸的smtplib.SMTP_SSL()方法,才能發送成功。

2.MIME類型:

MIME (Multipurpose Internet Mail Extensions) 是描述消息內容類型的因特網標準。

MIME 消息能包含文本、圖像、音頻、視頻以及其他應用程序專用的數據。

簡單來說,就是我們發送郵件時,如果存在附件,不同類型的附件要使用對應的MIME類型的方式來發送

具體類型可以參考:MIME參考手冊

2.實現代碼:

import smtplib 
from email.header import Header 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 
 
sender = 'XXXXX@163.com' 
receiver = 'XXXXX@qq.com' 
smtpserver = 'smtp.163.com' 
username = 'XXXXX' 
password = 'XXXXX' 
mail_title = '主題:這是帶附件的郵件' 
 
# 創建一個帶附件的實例 
message = MIMEMultipart() 
message['From'] = sender 
message['To'] = receiver 
message['Subject'] = Header(mail_title, 'utf-8') 
 
# 郵件正文內容 
message.attach(MIMEText('來來來,這是郵件的正文', 'plain', 'utf-8')) 
 
# 構造附件1(附件為TXT格式的文本) 
att1 = MIMEText(open('text1.txt', 'rb').read(), 'base64', 'utf-8') 
att1["Content-Type"] = 'application/octet-stream' 
att1["Content-Disposition"] = 'attachment; filename="text1.txt"' 
message.attach(att1) 
 
# 構造附件2(附件為JPG格式的圖片) 
att2 = MIMEText(open('123.jpg', 'rb').read(), 'base64', 'utf-8') 
att2["Content-Type"] = 'application/octet-stream' 
att2["Content-Disposition"] = 'attachment; filename="123.jpg"' 
message.attach(att2) 
 
# 構造附件3(附件為HTML格式的網頁) 
att3 = MIMEText(open('report_test.html', 'rb').read(), 'base64', 'utf-8') 
att3["Content-Type"] = 'application/octet-stream' 
att3["Content-Disposition"] = 'attachment; filename="report_test.html"' 
message.attach(att3) 
 
 
smtpObj = smtplib.SMTP_SSL() # 注意:如果遇到發送失敗的情況(提示遠程主機拒接連接),這里要使用SMTP_SSL方法 
smtpObj.connect(smtpserver) 
smtpObj.login(username, password) 
smtpObj.sendmail(sender, receiver, message.as_string()) 
print("郵件發送成功!!!") 
smtpObj.quit() 

3.發送成功后,接收方收到的郵件如下圖所示:

Python3如何使用SMTP發送帶附件郵件?

感謝你能夠認真閱讀完這篇文章,希望小編分享Python3如何使用SMTP發送帶附件郵件?內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海盐县| 买车| 香格里拉县| 韶山市| 莫力| 和静县| 炉霍县| 江口县| 庆云县| 特克斯县| 田东县| 清徐县| 平果县| 哈密市| 荣成市| 英山县| 广元市| 涞源县| 广德县| 龙口市| 涪陵区| 衡阳县| 衡阳市| 许昌县| 盈江县| 黄平县| 麻江县| 石首市| 来安县| 苏尼特右旗| 新绛县| 化隆| 徐水县| 琼结县| 西平县| 辽阳市| 商都县| 隆回县| 天津市| 隆昌县| 尖扎县|