python SMTP實現(xiàn)發(fā)送帶附件電子郵件
本文實例為大家分享了python SMTP發(fā)送帶附件電子郵件的具體代碼,供大家參考,具體內(nèi)容如下
可采用email模塊發(fā)送電子郵件附件。發(fā)送一個未知MIME類型的文件附件其基本思路如下:
1. 構(gòu)造MIMEMultipart對象做為根容器
2. 構(gòu)造MIMEText對象做為郵件顯示內(nèi)容并附加到根容器
3. 構(gòu)造MIMEBase對象做為文件附件內(nèi)容并附加到根容器
a. 讀入文件內(nèi)容并格式化
b. 設置附件頭
4. 設置根容器屬性
5. 得到格式化后的完整文本
6. 用smtp發(fā)送郵件
具體內(nèi)容參見<programing python(3rd)> 14章第6節(jié) “email: Parsing and Composing Mails”。發(fā)送一個未知MIME類型的文件附件實例代碼如下:
import smtplib import email.MIMEMultipart import email.MIMEText import email.MIMEBase import os.path From = "sender address" To = "recipients" file_name = "file name" server = smtplib.SMTP("smtp server address") server.login("username","password") #僅smtp服務器需要驗證時 # 構(gòu)造MIMEMultipart對象做為根容器 main_msg = email.MIMEMultipart.MIMEMultipart() # 構(gòu)造MIMEText對象做為郵件顯示內(nèi)容并附加到根容器 text_msg = email.MIMEText.MIMEText("this is a test text to text mime") main_msg.attach(text_msg) # 構(gòu)造MIMEBase對象做為文件附件內(nèi)容并附加到根容器 contype = 'application/octet-stream' maintype, subtype = contype.split('/', 1) ## 讀入文件內(nèi)容并格式化 data = open(file_name, 'rb') file_msg = email.MIMEBase.MIMEBase(maintype, subtype) file_msg.set_payload(data.read( )) data.close( ) email.Encoders.encode_base64(file_msg) ## 設置附件頭 basename = os.path.basename(file_name) file_msg.add_header('Content-Disposition', 'attachment', filename = basename) main_msg.attach(file_msg) # 設置根容器屬性 main_msg['From'] = From main_msg['To'] = To main_msg['Subject'] = "attach test " main_msg['Date'] = email.Utils.formatdate( ) # 得到格式化后的完整文本 fullText = main_msg.as_string( ) # 用smtp發(fā)送郵件 try: server.sendmail(From, To, fullText) finally: server.quit()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python讀取excel文件中帶公式的值的實現(xiàn)
這篇文章主要介紹了Python讀取excel文件中帶公式的值的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04pycharm中import導入包呈現(xiàn)灰色的問題及解決
這篇文章主要介紹了pycharm中import導入包呈現(xiàn)灰色的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05python中實現(xiàn)控制小數(shù)點位數(shù)的方法
今天小編就為大家分享一篇python中實現(xiàn)控制小數(shù)點位數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01如何在Python中利用matplotlib.pyplot畫出函數(shù)圖詳解
通過圖像可以直觀地學習函數(shù)變化、分布等規(guī)律,在學習函數(shù)、概率分布等方面效果顯著,下面這篇文章主要給大家介紹了關于如何在Python中利用matplotlib.pyplot畫出函數(shù)圖的相關資料,需要的朋友可以參考下2022-08-08