python中執(zhí)行smtplib失敗的處理方法
經(jīng)測(cè)試可用的發(fā)送郵件代碼:
import smtplibfrom email.mime.text import MIMEText # 第三方 SMTP 服務(wù)mail_host = 'smtp.163.com' # SMTP服務(wù)器mail_user = 'username' # 用戶名mail_pass = 'passwd' # 密碼(這里的密碼不是登錄郵箱密碼,而是授權(quán)碼) sender = ’[email protected]’ # 發(fā)件人郵箱receivers = [’[email protected]’] # 接收人郵箱 content = ’Python Send Mail !’title = ’Python SMTP Mail Test’ # 郵件主題message = MIMEText(content, ’plain’, ’utf-8’) # 內(nèi)容, 格式, 編碼message[’From’] = '{}'.format(sender)message[’To’] = ','.join(receivers)message[’Subject’] = title try: smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 啟用SSL發(fā)信, 端口一般是465 smtpObj.login(mail_user, mail_pass) # 登錄驗(yàn)證 smtpObj.sendmail(sender, receivers, message.as_string()) # 發(fā)送 print('mail has been send successfully.')except smtplib.SMTPException as e: print(e)
問(wèn)題解決與注意點(diǎn):
1.報(bào)錯(cuò):Error: A secure connection is requiered(such as ssl)
解決:因?yàn)猷]箱SSL驗(yàn)證的問(wèn)題,因此把smtplib.SMTP()改成smtplib.SMTP_SSL(),端口號(hào)為465。
2.報(bào)錯(cuò):535, b’Error: authentication failed’
解決:可能是由于用戶名不正確,因此代碼中的用戶名應(yīng)該填寫(xiě)為郵箱地址@前面部分 ,或是在郵箱設(shè)置的帳戶昵稱。
3.SMTP服務(wù)器可根據(jù)發(fā)送的郵箱做相應(yīng)的選擇,如代碼中使用163郵箱則設(shè)為mail_host = 'smtp.163.com',
可以改成'smtp.126.com'、'smtp.qq.com'等等。
4.代碼中的密碼mail_pass為授權(quán)碼,并非郵箱密碼,授權(quán)碼用于登錄第三方郵件客戶端的專用密碼,
QQ郵箱可通過(guò)設(shè)置→帳戶→生成授權(quán)碼;網(wǎng)易郵箱126/163可通過(guò)設(shè)置→客戶端授權(quán)密碼。
知識(shí)點(diǎn)擴(kuò)展:
python的smtplib提供了一種很方便的途徑發(fā)送電子郵件。它對(duì)smtp協(xié)議進(jìn)行了簡(jiǎn)單的封裝。
smtp協(xié)議的基本命令包括:
HELO 向服務(wù)器標(biāo)識(shí)用戶身份 MAIL 初始化郵件傳輸 mail from: RCPT 標(biāo)識(shí)單個(gè)的郵件接收人;常在MAIL命令后面,可有多個(gè)rcpt to: DATA 在單個(gè)或多個(gè)RCPT命令后,表示所有的郵件接收人已標(biāo)識(shí),并初始化數(shù)據(jù)傳輸,以.結(jié)束 VRFY 用于驗(yàn)證指定的用戶/郵箱是否存在;由于安全方面的原因,服務(wù)器常禁止此命令 EXPN 驗(yàn)證給定的郵箱列表是否存在,擴(kuò)充郵箱列表,也常被禁用 HELP 查詢服務(wù)器支持什么命令 NOOP 無(wú)操作,服務(wù)器應(yīng)響應(yīng)OK QUIT 結(jié)束會(huì)話 RSET 重置會(huì)話,當(dāng)前傳輸被取消 MAIL FROM 指定發(fā)送者地址 RCPT TO 指明的接收者地址到此這篇關(guān)于python中執(zhí)行smtplib失敗的處理方法的文章就介紹到這了,更多相關(guān)python中執(zhí)行smtplib失敗如何處理內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 基于 Python 實(shí)踐感知器分類算法2. Python如何批量生成和調(diào)用變量3. Python 中如何使用 virtualenv 管理虛擬環(huán)境4. ASP.NET MVC實(shí)現(xiàn)橫向展示購(gòu)物車5. 通過(guò)CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動(dòng)畫(huà)特效6. Python獲取B站粉絲數(shù)的示例代碼7. windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無(wú)效問(wèn)題8. ASP.Net Core對(duì)USB攝像頭進(jìn)行截圖9. ASP.Net Core(C#)創(chuàng)建Web站點(diǎn)的實(shí)現(xiàn)10. python利用opencv實(shí)現(xiàn)顏色檢測(cè)
