乾貨 :解放雙手,教你用Python實現自動發送郵件,你學會了嗎?


乾貨 :解放雙手,教你用Python實現自動發送郵件,你學會了嗎?

使用Python實現自動化郵件發送,可以讓你擺脫繁瑣的重複性業務,可以節省非常多的時間。Python有兩個內置庫:smtplib和email,能夠實現郵件功能,smtplib庫負責發送郵件,email庫負責構造郵件格式和內容。郵件發送需要遵守SMTP協議,Python內置對SMTP的支持,可以發送純文本郵件、HTML郵件以及帶附件的郵件。1、先導入相關的庫和方法

<code>import smtplib
import email
# 負責構造文本
from email.mime.text import MIMEText
# 負責構造圖片
from email.mime.image import MIMEImage
# 負責將多個對象集合起來
from email.mime.multipart import MIMEMultipart
from email.header import Header/<code>

2、設置郵箱域名、發件人郵箱、郵箱授權碼、收件人郵箱

<code># SMTP服務器,這裡使用163郵箱
mail_host = "smtp.163.com"
# 發件人郵箱
mail_sender = "******@163.com"
# 郵箱授權碼,注意這裡不是郵箱密碼,如何獲取郵箱授權碼,請看本文最後教程
mail_license = "********"

# 收件人郵箱,可以為多個收件人
mail_receivers = ["******@qq.com","******@outlook.com"]/<code>

3、構建MIMEMultipart對象代表郵件本身,可以往裡面添加文本、圖片、附件等

<code>mm = MIMEMultipart('related')/<code>

4、設置郵件頭部內容

<code># 郵件主題
subject_content = """Python郵件測試"""
# 設置發送者,注意嚴格遵守格式,裡面郵箱為發件人郵箱
mm["From"] = "sender_name"
# 設置接受者,注意嚴格遵守格式,裡面郵箱為接受者郵箱
mm["To"] = "receiver_1_name,receiver_2_name"
# 設置郵件主題
mm["Subject"] = Header(subject_content,'utf-8')/<code>

5、添加正文文本

<code># 郵件正文內容
body_content = """你好,這是一個測試郵件!"""
# 構造文本,參數1:正文內容,參數2:文本格式,參數3:編碼方式
message_text = MIMEText(body_content,"plain","utf-8")
# 向MIMEMultipart對象中添加文本對象
mm.attach(message_text)/<code>

6、添加圖片

<code># 二進制讀取圖片
image_data = open('a.jpg','rb')
# 設置讀取獲取的二進制數據
message_image = MIMEImage(image_data.read())
# 關閉剛才打開的文件
image_data.close()
# 添加圖片文件到郵件信息當中去
mm.attach(message_image)/<code>

7、添加附件(excel表格)

<code># 構造附件
atta = MIMEText(open('sample.xlsx', 'rb').read(), 'base64', 'utf-8')
# 設置附件信息
atta["Content-Disposition"] = 'attachment; filename="sample.xlsx"'
# 添加附件到郵件信息當中去
mm.attach(atta)/<code>

8、發送郵件

<code># 創建SMTP對象
stp = smtplib.SMTP()
# 設置發件人郵箱的域名和端口,端口地址為25
stp.connect(mail_host, 25)
# set_debuglevel(1)可以打印出和SMTP服務器交互的所有信息
stp.set_debuglevel(1)
# 登錄郵箱,傳遞參數1:郵箱地址,參數2:郵箱授權碼
stp.login(mail_sender,mail_license)

# 發送郵件,傳遞參數1:發件人郵箱地址,參數2:收件人郵箱地址,參數3:把郵件內容格式改為str
stp.sendmail(mail_sender, mail_receivers, mm.as_string())
print("郵件發送成功")
# 關閉SMTP對象
stp.quit()/<code>

結果看看郵箱接收到來自python的郵件長什麼樣:

乾貨 :解放雙手,教你用Python實現自動發送郵件,你學會了嗎?


本文測試發送郵箱為163郵箱,可按如下步驟獲取郵箱授權碼第一步:登陸網頁163郵箱,找到設置並打開

乾貨 :解放雙手,教你用Python實現自動發送郵件,你學會了嗎?


乾貨 :解放雙手,教你用Python實現自動發送郵件,你學會了嗎?


第三步:點擊開啟,並按提示設置你的授權密碼

乾貨 :解放雙手,教你用Python實現自動發送郵件,你學會了嗎?

怎麼樣?看完你會了嗎?

如果你想學習Python,還是迷茫到底如何系統的學習Python,沒關係!

乾貨 :解放雙手,教你用Python實現自動發送郵件,你學會了嗎?


小編精心為大家整理了Python視頻教程,讓你不用再糾結。

送給正在學習Python的小夥伴!,私信【學習】即可免費領取內部資料,還有直播課程哦。

獲取方式:


分享到:


相關文章: