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

首頁 > 編程 > Python > 正文

Python3使用SMTP發(fā)送帶附件郵件

2020-02-15 21:55:05
字體:
供稿:網(wǎng)友

一、設(shè)置開啟SMTP服務(wù)并獲取授權(quán)碼

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

二、使用Python3 發(fā)送帶附件的郵件

0.使用的環(huán)境為:

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

1.注意事項:

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

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

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

2.MIME類型:

MIME (Multipurpose Internet Mail Extensions) 是描述消息內(nèi)容類型的因特網(wǎng)標準。

MIME 消息能包含文本、圖像、音頻、視頻以及其他應(yīng)用程序?qū)S玫臄?shù)據(jù)。

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

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

2.實現(xiàn)代碼:

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 = '主題:這是帶附件的郵件'  # 創(chuàng)建一個帶附件的實例 message = MIMEMultipart() message['From'] = sender message['To'] = receiver message['Subject'] = Header(mail_title, 'utf-8')  # 郵件正文內(nèi)容 message.attach(MIMEText('來來來,這是郵件的正文', 'plain', 'utf-8'))  # 構(gòu)造附件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)  # 構(gòu)造附件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)  # 構(gòu)造附件3(附件為HTML格式的網(wǎng)頁) 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() # 注意:如果遇到發(fā)送失敗的情況(提示遠程主機拒接連接),這里要使用SMTP_SSL方法 smtpObj.connect(smtpserver) smtpObj.login(username, password) smtpObj.sendmail(sender, receiver, message.as_string()) print("郵件發(fā)送成功!!!") smtpObj.quit()             
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 佛学| 修水县| 讷河市| 星座| 晋中市| 淮滨县| 陇川县| 海门市| 泾阳县| 达拉特旗| 敦化市| 大安市| 江西省| 都昌县| 台安县| 宜州市| 广饶县| 瑞昌市| 霸州市| 梓潼县| 玉环县| 福建省| 思南县| 治多县| 云和县| 双桥区| 曲阜市| 厦门市| 浙江省| 东平县| 建德市| 襄城县| 光泽县| 海原县| 佛坪县| 南昌市| 陆丰市| 会泽县| 福建省| 临沂市| 福建省|