天天看點

Python 技術篇-用smtplib和email庫實作郵件發送并展示本地圖檔執行個體示範

qq賬号發送郵箱登陸密碼需要用授權碼。

可以看我的這個文章:

Python 技術篇-qq郵箱授權碼開通

實作原理

将本地圖檔加入到郵件的附件中。

m_img.add_header('Content-ID', '<id>')

用來設定圖檔id。

然後通過郵件html文本引入圖檔。

<img src="cid:id">

用來引用圖檔。

#!/user/bin/env python
# -*- coding:utf-8 -*-
import smtplib
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header

message = MIMEMultipart()   # 郵件主體

# 郵件加入文本内容
text = '<img src="cid:0">'   # html文本引入id為0的圖檔
m_text = MIMEText(text, 'html', 'utf-8')
message.attach(m_text)

# 郵件加入圖檔
m_img = MIMEBase('image', 'jpg')
m_img.add_header('Content-Disposition', 'attachment')
m_img.add_header('Content-ID', '<0>')   # 設定圖檔id為0
f = open("hello1.jpg", "rb")   # 讀取本地圖檔
m_img.set_payload(f.read())
encoders.encode_base64(m_img)
message.attach(m_img)

message['From'] = Header('小愛')   # 郵件發送者名字
message['To'] = Header('小藍棗')   # 郵件接收者名字
message['Subject'] = Header('來自異世界的一封信!')   # 郵件主題

mail = smtplib.SMTP()
mail.connect("smtp.qq.com")   # 連接配接 qq 郵箱
mail.login("[email protected]", "授權碼")   # 賬号和授權碼
mail.sendmail("[email protected]", ["[email protected]"], message.as_string())   # 發送賬号、接收賬号和郵件資訊      

運作效果圖:

目前展示的就是本地的 hello1.jpg 圖檔

Python 技術篇-用smtplib和email庫實作郵件發送并展示本地圖檔執行個體示範

喜歡的點個贊❤吧!