python實現帶附件格式的業務服務質量週報郵件

2021-09-11 01:32:16 字數 2328 閱讀 8330

一 點睛

本案例通過mimetext與mimeimage類的組合,實現**郵件格 式。另通過mimetext類再定義content-disposition屬性來實現帶附件的郵件。我們可以利用這些豐富的特性來定製週報郵件,如業務服務質量週報。

二 **

#coding: utf-8

import smtplib

from email.mime.multipart import mimemultipart #匯入mimemultipart類

from email.mime.text import mimetext #匯入mimetext類

from email.mime.image import mimeimage #匯入mimeimage類

host = "smtp.qq.com" #定義smtp主機

subject = u"官網業務服務質量週報" #定義郵件主題

to = "[email protected]" #定義郵件接收人

from = "[email protected]" #定義郵件發件人

def addimg(src,imgid): #新增函式,引數1:路徑,引數2:id

fp = open(src, 'rb') #開啟檔案

msgimage = mimeimage(fp.read()) #建立mimeimage物件,讀取內容作為引數

fp.close() #關閉檔案

msgimage.add_header('content-id', imgid) #指定檔案的content-id,

return msgimage #返回msgimage物件

msg = mimemultipart('related') #建立mimemultipart物件,採用related定義內嵌資的郵件體

#建立乙個mimetext物件,html元素包括文字與

msg.attach(msgtext) #mimemultipart物件附加mimetext的內容

msg.attach(addimg("img/weekly.png","weekly")) #使用mimemultipart物件附加mimeimage的內容

#建立乙個mimetext物件,附加week_report.xlsx文件

attach = mimetext(open("doc/week_report.xlsx", "rb").read(), "base64", "utf-8")

#指定檔案格式型別

# #由於qqmail使用gb18030頁面編碼,為保證中文檔名不出現亂碼,對檔名進行編碼轉換

attach["content-disposition"] = "attachment; filename=\"業務服務質量週報(12周).xlsx\"".decode("utf-8").encode("gb18030")

# mimemultipart物件附加mimetext附件內容

msg.attach(attach)

msg['subject'] = subject

msg['from']=from

msg['to']=to

try:

server = smtplib.smtp()

server.connect(host,"25")

server.starttls()

server.login("[email protected]", "qq郵箱授權碼")

server.sendmail(from, to, msg.as_string())

server.quit()

print "郵件傳送成功!"

except exception, e:

print "失敗:"+str(e)

三 效果

Python 如何傳送html格式或帶附件的郵件。

通過qq郵箱傳送到163郵箱。傳送html的郵件 from email.mime.text import mimetext from email.header import header import smtplib 傳送郵箱賬戶 user qq.com user 163.com 授權碼 passw...

使用python實現傳送帶附件的郵件

python中的smtplib模組是內建的傳送郵件模組。在使用smtp模組傳送郵件之前,需要先開啟郵箱的smtp服務 以qq郵箱為例 設定 賬戶 smtp服務,根據提示開通smtp服務,記錄授權碼 smtp smtplib.smtp ssl host smtp.qq.com port 465 smt...

Python 傳送帶附件的郵件

usr bin python3 import smtplib from email.mime.text import mimetext from email.mime.multipart import mimemultipart from email.header import header sen...