我們?nèi)粘9ぷ髦卸紩龅桨l(fā)送郵件和接收郵件割笙,使用Python也可以發(fā)送接收郵件纸泄。當(dāng)我們需要處理大量郵件時蜂筹,使用Python處理郵件可以大大地節(jié)省時間,提高效率骗随。
郵件協(xié)議
SMTP:Simple Mail Transfer Protocol的簡稱蛤织,即簡單郵件傳輸協(xié)議,是發(fā)送郵件的協(xié)議鸿染。
POP3:Post Office Protocol 3的簡稱指蚜,即郵局協(xié)議的第三個版本,它是規(guī)定怎樣將個人計算機連接到Internet上郵件服務(wù)器和下載電子郵件的協(xié)議牡昆。
IMAP:Internet Mail Access Protocol的簡稱姚炕,即交互式郵件存取協(xié)議,是收取郵件的協(xié)議丢烘。
郵件發(fā)送基本流程
注冊一個郵箱柱宦,打開郵箱的SMTP授權(quán)并獲取授權(quán)碼,如下圖所示:
2. 構(gòu)造郵件內(nèi)容播瞳,包括發(fā)送人掸刊、主題、抄送人赢乓、附件忧侧、正文等,如下所示:
3. 發(fā)送郵件
Python發(fā)送郵件
Python發(fā)送文本郵件
使用Python發(fā)送郵件的庫有很多牌芋,我們使用Python內(nèi)置的email庫和smtplib庫蚓炬,首先導(dǎo)入這兩個庫。示例代碼如下:
郵箱要開啟SMTP并獲取授權(quán)碼躺屁,用授權(quán)碼替換原來的郵箱登錄密碼肯夏,否則運行會報錯:smtplib.SMTPAuthenticationError: (550, b'User has no permission')
代碼運行結(jié)果:
進(jìn)入163郵箱看看是否有郵件,如下圖所示:
發(fā)送HTML格式郵件
和文本格式郵件大部分代碼相同犀暑,有幾個地方需要修改驯击,代碼如下圖所示:
進(jìn)入郵箱查看郵件,如下圖所示:
發(fā)送帶附件郵件
發(fā)送帶附件的郵件也和發(fā)送文本郵件類似耐亏,不一樣的地方是需要導(dǎo)入smtplib庫的MIMEApplication類徊都,使用這個類構(gòu)造附件然后添加郵件中。代碼如下圖所示:
進(jìn)入郵箱查看郵件广辰,如下圖所示:
Python接收郵件
Python接收郵件也有很多庫暇矫,比較簡單的是zmail庫,它是一個第三方庫择吊,使用時候需要安裝袱耽,使用這個庫幾行代碼就能完成接收郵件。代碼實例如下所示:
運行結(jié)果如下圖所示:
保存附件的參數(shù)target_path為None時附件保存在當(dāng)前腳本同級目錄下干发,也可以設(shè)置附件保存路徑朱巨;overwrite為True表示覆蓋相同文件名附件。
想了解更多精彩內(nèi)容枉长,快來關(guān)注程序猿小董