国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python模塊smtplib實現純文本郵件發送功能

2020-02-23 00:11:36
字體:
來源:轉載
供稿:網友

今天學到了如何使用Python的smtplib庫發送郵件,中間也是遇到了各種各樣的錯誤和困難,還好都一一的解決了。下面來談一談我的這段經歷。

配置你的郵箱

為什么要配置郵箱呢?具體要配置什么呢?

因為我們申請的一些免費郵箱都是默認不開啟smtp/pop協議的。
SMTP是發郵件使用到的計算機網絡中應用層協議中的一個;而POP則是收郵件時使用到的計算機網絡中的應用層協議的其中一個。這都是理論性的知識了,上過計算機網絡這門課的想必都知道,就不多說了。

配置就是要開啟這項服務。否則我們就不能實現用Python代碼來控制發送和接收郵件了。

我們在配置完成之后,系統會提示給我們一個郵箱客戶端的授權碼。作用就是我們登陸的時候替代原來的登陸密碼。大家一定要完善保存咯。我這里采用的是163的郵箱,所以是可以自己設置這個授權碼的。

使用代碼發郵件

還是按照,先看代碼再研究的策略。如下:

# coding:utf-8import smtplibfrom email.mime.text import MIMETextfrom email.header import Header"""請確保自己的郵箱的smtp協議開啟,都則會出現認證的錯誤的,如ssh等"""sender = "1564086XXXX@163.com"# 收件人,可以是多個receivers = ['102170XXXX@qq.com']# 三個參數:第一個為純文本,第二個plain設置文本格式,第三個為編碼格式message = MIMEText('這里是發送的郵件的主要的內容。Pure Text Here!','plain','utf-8')message['From'] = Header('來自Mark','utf-8')message['To'] = Header('測試標題','utf-8')subject = '哈哈哈哈哈哈,這是郵件的主題 'message['Subject'] = Header(subject,'utf-8')try: smtpObj = smtplib.SMTP() smtpObj.connect('smtp.163.com',25) smtpObj.login(sender,'你的客戶端授權碼') smtpObj.sendmail(sender,receivers,message.as_string()) smtpObj.quit() print '郵件已成功發送了'except smtplib.SMTPException,e: print e.message

測試的結果:

D:/Software/Python2/python.exe E:/Code/Python/MyTestSet/mail/PureText.py
郵件已成功發送了

Process finished with exit code 0

確實是成功發送了的。

代碼探查

下面就來深入的研究一下發送郵件實現的流程吧。我們注意到了,最最主要的是下面的這樣一段代碼。

smtpObj = smtplib.SMTP()smtpObj.connect('smtp.163.com',25)smtpObj.login(sender,'你的客戶端授權碼')smtpObj.sendmail(sender,receivers,/message.as_string()smtpObj.quit()

不難看出,主要是經歷了下面的這些流程:

獲得SMTP服務 連接服務器 模擬客戶端登陸 實現發送郵件 退出登錄

其中核心的也就是客戶端登陸和發送郵件的兩個步驟。模擬登陸的時候需要注意的就是使用你自己的授權碼就行了,沒什么難度。而發送郵件的時候需要注意一下參數。發件人是一個,而收件人是一個列表,里面可以有很多個收件人(這樣可以借助這個列表實現郵件的群發)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新干县| 麟游县| 措勤县| 江阴市| 景宁| 吉木乃县| 遂溪县| 土默特左旗| 大庆市| 海南省| 平乐县| 罗定市| 浙江省| 雅江县| 上虞市| 田林县| 宕昌县| 凌海市| 河源市| 津南区| 濮阳市| 平泉县| 清苑县| 长丰县| 正蓝旗| 扎鲁特旗| 五寨县| 唐山市| 蓬安县| 治县。| 浠水县| 松江区| 涞水县| 稻城县| 泽州县| 宣化县| 梧州市| 寻乌县| 江阴市| 兰州市| 藁城市|