python SMTP實(shí)現(xiàn)發(fā)送帶附件電子郵件
本文實(shí)例為大家分享了python SMTP發(fā)送帶附件電子郵件的具體代碼,供大家參考,具體內(nèi)容如下
可采用email模塊發(fā)送電子郵件附件。發(fā)送一個(gè)未知MIME類型的文件附件其基本思路如下:
1. 構(gòu)造MIMEMultipart對(duì)象做為根容器
2. 構(gòu)造MIMEText對(duì)象做為郵件顯示內(nèi)容并附加到根容器
3. 構(gòu)造MIMEBase對(duì)象做為文件附件內(nèi)容并附加到根容器
a. 讀入文件內(nèi)容并格式化
b. 設(shè)置附件頭
4. 設(shè)置根容器屬性
5. 得到格式化后的完整文本
6. 用smtp發(fā)送郵件
具體內(nèi)容參見<programing python(3rd)> 14章第6節(jié) “email: Parsing and Composing Mails”。發(fā)送一個(gè)未知MIME類型的文件附件實(shí)例代碼如下:
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服務(wù)器需要驗(yàn)證時(shí)
# 構(gòu)造MIMEMultipart對(duì)象做為根容器
main_msg = email.MIMEMultipart.MIMEMultipart()
# 構(gòu)造MIMEText對(duì)象做為郵件顯示內(nèi)容并附加到根容器
text_msg = email.MIMEText.MIMEText("this is a test text to text mime")
main_msg.attach(text_msg)
# 構(gòu)造MIMEBase對(duì)象做為文件附件內(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)
## 設(shè)置附件頭
basename = os.path.basename(file_name)
file_msg.add_header('Content-Disposition',
'attachment', filename = basename)
main_msg.attach(file_msg)
# 設(shè)置根容器屬性
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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用memory_profiler監(jiān)測(cè)python代碼運(yùn)行時(shí)內(nèi)存消耗方法
今天小編就為大家分享一篇使用memory_profiler監(jiān)測(cè)python代碼運(yùn)行時(shí)內(nèi)存消耗方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
詳解Django 時(shí)間與時(shí)區(qū)設(shè)置問題
這篇文章主要介紹了Django 時(shí)間與時(shí)區(qū)設(shè)置問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Python函數(shù)關(guān)鍵字參數(shù)及用法詳解
本文主要介紹了Python函數(shù)關(guān)鍵字參數(shù)及用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
python使用openpyxl庫處理Excel文件詳細(xì)教程
這篇文章主要給大家介紹了關(guān)于python使用openpyxl庫處理Excel文件詳細(xì)教程的相關(guān)資料,openpyxl屬于第三方模塊,在python中用來處理excel文件,可以對(duì)excel進(jìn)行的操作有讀寫、修改、調(diào)整樣式及插入圖片等,需要的朋友可以參考下2023-11-11
Python socket模塊實(shí)現(xiàn)的udp通信功能示例
這篇文章主要介紹了Python socket模塊實(shí)現(xiàn)的udp通信功能,結(jié)合具體實(shí)例形式分析了Python使用socket模塊實(shí)現(xiàn)UDP通信客戶端與服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-04-04
深入淺析Python獲取對(duì)象信息的函數(shù)type()、isinstance()、dir()
這篇文章主要介紹了Python獲取對(duì)象信息的函數(shù)type()、isinstance()、dir()的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09

