1. 程式人生 > >Python3傳送帶圖郵件

Python3傳送帶圖郵件

我們常常會遇到需要通過指令碼新增監控的情況,一般我們會選擇使用郵件的方式通知相關人員。

一個簡單的郵件我們可以輕鬆構建出來(可以參考我之前的文章《Python3使用smtplib傳送郵件》),但是有些時候在郵件中增加一個圖片往往能起到事半功倍的效果,畢竟一圖勝千言嘛。

今天我們就看下如何在郵件中新增圖片資訊。

# -*- coding: utf8  -*-
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import
MIMEImage import smtplib import matplotlib.pyplot as plt if __name__ == '__main__': # 以html格式構建郵件內容 send_str = '<html><body>' send_str += '<center>下邊是一張圖片</center>' # html中以<img>標籤新增圖片,align和width可以調整對齊方式及圖片的寬度 send_str += '<img src="cid:image1" alt="image1" align="center" width=100% >'
send_str += '<center>上邊是一張圖片</center>' send_str += '</body></html>' # 畫圖並儲存到本地 pic_path = 'test.png' plt.plot([1,3,2,4], '--r') plt.title('這是一個測試') plt.savefig(pic_path) # 構建message msg = MIMEMultipart() # 新增郵件內容 content = MIMEText(
send_str, _subtype='html', _charset='utf8') msg.attach(content) # 構建並新增影象物件 img1 = MIMEImage(open(pic_path, 'rb').read(), _subtype='octet-stream') img1.add_header('Content-ID', 'image1') msg.attach(img1) # 郵件主題 msg['Subject'] = '這是一封帶圖郵件' # 郵件收、發件人 user = "[email protected]" to_list = ["[email protected]", "[email protected]"] msg['To'] = ';'.join(to_list) msg['From'] = user # 構建並新增附件物件 # 如果不想直接在郵件中展示圖片,可以以附件形式新增 img = MIMEImage(open(pic_path, 'rb').read(), _subtype='octet-stream') img.add_header('Content-Disposition', 'attachment', filename=pic_path) msg.attach(img) # 密碼(有些郵件服務商在三方登入時需要使用授權碼而非密碼,比如網易和QQ郵箱) passwd = "你的授權碼" # 登入郵箱 server = smtplib.SMTP_SSL("smtp.qq.com",port=465) server.login(user, passwd) print('Login Successful!') # 傳送郵件 server.sendmail(user, to_list, msg.as_string()) print('Send Successful')

看,圖片物件、附件物件、兩個收件人,都按照我們的預期實現了!