亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Python 發(fā)送郵件腳本

在一些場景中經(jīng)常需要發(fā)送郵件, 像是持續(xù)集成和運維報警等. 而使用Python腳本能夠很快捷方便得實現(xiàn)發(fā)送各種郵件的需求.這里就通過Python基于SMTP(Simple Mail Transfer Protocol)實現(xiàn)一套可以群發(fā),Html內(nèi)容和附件的腳本.

既然是要發(fā)送各種類型的郵件, 首先需要有一個郵箱.這里就以騰訊企業(yè)郵箱為例.做完一下三個準(zhǔn)備工作之后就可以開始寫腳本了.

準(zhǔn)備

  1. 在設(shè)置中開啟所有SMTP相關(guān)服務(wù).Python 發(fā)送郵件腳本
  2. 記錄發(fā)送郵件服務(wù)器地址, 連接方式和端口Python 發(fā)送郵件腳本
  3. 新增一個授權(quán)密碼并記錄起來.Python 發(fā)送郵件腳本

連接郵件服務(wù)器并登陸

Python中有smtplib模塊可供使用, 將它導(dǎo)入進來. 在發(fā)送郵件服務(wù)器地址信息那里可以看到連接有兩種方式, 一種是普通連接, 一種是經(jīng)過加密的連接. 在腳本中就根據(jù)需求去構(gòu)建兩種不同的鏈接對象. 通過郵件服務(wù)器地址這里的server_host也就是smtp.exmail.qq.com和默認(rèn)的服務(wù)器端口(SMTP方式默認(rèn)使用25端口而SMTP_SSL就是默認(rèn)使用465端口, 通常郵件服務(wù)器都是可以使用默認(rèn)端口的)建立與郵件服務(wù)器之間的連接. 并通過郵箱賬戶和上面第三步中設(shè)置的授權(quán)密碼登錄郵箱服務(wù)器. 沒有異常信息的話就連接郵件服務(wù)器并登錄成功了.

Python 發(fā)送郵件腳本

發(fā)送文本郵件

發(fā)送郵件之前先驗證一下當(dāng)前是否已經(jīng)登錄到郵件服務(wù)器. 再通過email模塊中的MIMEText構(gòu)建出包含發(fā)件人, 收件人列表, 郵件標(biāo)題和郵件內(nèi)容的消息體.因為這里是發(fā)送文本內(nèi)容的郵件, 所以content_type是plain.

Python 發(fā)送郵件腳本

構(gòu)建完消息體之后就可以直接調(diào)用SMTP的sendmail方法, 將消息體從發(fā)件方發(fā)送到收件列表中的收件郵箱中去.

Python 發(fā)送郵件腳本

發(fā)送Html郵件

如果發(fā)送普通文本郵件成功了, 那么想要發(fā)送html內(nèi)容的郵件就很簡單了, 稍微改一下上面的代碼給content_type多一種html的選擇就可以了. 通過外部的參數(shù)控制構(gòu)建消息體是純文件內(nèi)容還是html內(nèi)容. 這樣就可以使用一些html模板來發(fā)送固定格式的郵件.

Python 發(fā)送郵件腳本

發(fā)送附件

首先從email模塊中引入MIMEMultipart. 從這個MIME擴展類的名字也可以看出它的作用是可以構(gòu)建多個MIME的消息體, 并將它們裝配起來.繼續(xù)修改前面的代碼. 根據(jù)發(fā)件人, 收件人列表和郵箱標(biāo)題構(gòu)建出多MIME實例.

Python 發(fā)送郵件腳本

接著根據(jù)參數(shù)決定構(gòu)建純文本還是Html內(nèi)容的消息體, 將該包含郵件內(nèi)容的消息體裝載進上面初始化過的multi_msg中. 完成郵件內(nèi)容部分的填充.

Python 發(fā)送郵件腳本

完成代碼改造之后就要加入對附件的支持, 遍歷外部傳入的文件列表, 并根據(jù)文件構(gòu)建出包含附件的消息體, 將其依次裝載進multi_msg中.

Python 發(fā)送郵件腳本

打開遍歷文件列表時拿到附件, 將其初始化為MIME消息體, 并且設(shè)置附件的文件屬性和附件的名字.

Python 發(fā)送郵件腳本

匯總

功能代碼完成之后再通過getopt構(gòu)建出來外部參數(shù)指令, 方便外部調(diào)用腳本.

Python 發(fā)送郵件腳本

執(zhí)行腳本

Python 發(fā)送郵件腳本

收到群發(fā)帶附件的郵件

Python 發(fā)送郵件腳本

Issue

通常我們都是在公司使用自動發(fā)郵件腳本, 肯定都會發(fā)送一些內(nèi)容到企業(yè)郵箱. 在向企業(yè)郵箱群發(fā)郵件的時候會出現(xiàn)企業(yè)退信的情況, 返回一個代碼和簡單的描述代表這次發(fā)送失敗. 我在用163的郵箱給騰訊企業(yè)郵箱發(fā)送群發(fā)郵件時就出現(xiàn)過這個問題. 這時可以參考一下退信代碼說明, 根據(jù)里面的說明fix問題.

————金三銀四課程特惠————

馬哥教育精英線下Linux班鄭州校區(qū)開班倒計時,優(yōu)惠四重享,贈送高達4000元的學(xué)習(xí)大禮包:

第一重:4月30日前報名,立減400元,名額有限搶完為止;

第二重:4月30日前報名,贈送馬哥教育內(nèi)部Linux知識精講教材一本(價值666元);

第三重:4月30日前報名,贈送馬哥教育實體服務(wù)器使用資格(價值1666元);

第四重:4月30日前報名,贈送馬哥教育云學(xué)堂學(xué)習(xí)權(quán)限1個(價值1999元);

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機構(gòu)!