smtplib 模塊與 email 模塊
日常辦公中正式文件的發(fā)送都需要用到郵件,以及在互聯(lián)網(wǎng)工作中,月度總結(jié)、銷售報(bào)表、考評(píng)表等等都需要郵件進(jìn)行發(fā)送。在不考慮辦公自動(dòng)化之前,你發(fā)送一封郵件的步驟是如何呢?
- 第一步打開瀏覽器進(jìn)入到郵箱登錄界面,如 163、QQ、Sina 等;
- 輸入郵箱用戶名和密碼進(jìn)行登錄;
- 登錄后在郵箱主界面點(diǎn)擊發(fā)件,編輯發(fā)送內(nèi)容;
- 點(diǎn)擊發(fā)送按鈕,完成一封郵件的發(fā)送。
如果有一種方式不需要你打開瀏覽器,所有操作都在代碼中完成,還可以靈活配置發(fā)送內(nèi)容,實(shí)現(xiàn)定時(shí)發(fā)送、自動(dòng)監(jiān)聽(tīng)等操作,想起來(lái)是不是更酷了。這些都屬于辦公自動(dòng)化的范疇。本小節(jié)將介紹利用 Python 實(shí)現(xiàn)郵件自動(dòng)化。首先介紹所需模塊 smtplib 與 email 的使用。
1. smtplib 與 email 模塊介紹
介紹 smtplib 之前,可以先拆分下,介紹什么是 SMTP,SMTP(Simple Mail Transfer Protocol)即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式。Python 內(nèi)置對(duì) SMTP 的支持,可以發(fā)送純文本郵件、HTML 郵件以及帶附件的郵件,Python 對(duì) SMTP 支持有 smtplib 和 email 兩個(gè)模塊,email 負(fù)責(zé)構(gòu)造郵件,smtplib 負(fù)責(zé)發(fā)送郵件。
2. 模塊使用
smtplib 和 email 模塊是 Python 的內(nèi)置模塊,無(wú)需額外安裝,可以直接進(jìn)行使用。使用步驟如下:
步驟 1:模塊導(dǎo)入
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
代碼解釋:
-
smtplib:smtplib 為負(fù)責(zé)發(fā)送郵件的模塊;
-
MIMEText:構(gòu)建郵件主體內(nèi)容時(shí)使用;
-
MIMEMultipart:構(gòu)建包含多個(gè)部分的郵件體的 MIME 對(duì)象,如帶附件的郵件。
-
MIMEApplication:用來(lái)表示主要類型的 MIME 消息對(duì)象。
步驟 2:初始化 SMTP 對(duì)象
s=smtplib.SMTP([host [,port [,local_hostname]])
參數(shù)解釋:
-
host:SMTP 服務(wù)器主機(jī)的 IP 地址或者是域名;
-
port:服務(wù)的端口號(hào)(默認(rèn)是 25);
-
local_hostname:服務(wù)器的地址(默認(rèn)是 localhost)。
下面為構(gòu)建好的 SMTP 對(duì)象示例:
s=smtplib.SMTP("smtp.qq.com")
步驟 3:構(gòu)建郵件內(nèi)容
通過(guò) Python 提供 email 模塊構(gòu)建郵件內(nèi)容;
步驟 4:發(fā)送郵件
通過(guò) smtplib 模塊實(shí)現(xiàn)發(fā)送郵件。
3. 小結(jié)
本節(jié)課程我們主要學(xué)習(xí)了 smtplib 與 email 模塊介紹。本節(jié)課程的重點(diǎn)如下:
- 了解 smtplib 與 email 模塊的作用;
- 掌握 smtplib 與 email 模塊實(shí)現(xiàn)郵件發(fā)送的使用步驟;