1. 程式人生 > 程式設計 >Python使用QQ郵箱傳送郵件報錯smtplib.SMTPAuthenticationError

Python使用QQ郵箱傳送郵件報錯smtplib.SMTPAuthenticationError

最新在學習Python的基礎入門系列課程,今天學習到使用python 的內建庫smtplib傳送郵件內容。

使用Python傳送郵件步驟簡單:

  1. 建立SMTP連線
  2. 使用郵箱和密碼登入SMTP伺服器
  3. 建立郵件內容物件EmailMessage, 並使用set_content方法設定郵件內容
  4. 呼叫sendmail方法傳送郵件

具體程式碼如下:

import smtplib
from email.message import EmailMessage
# 定義SMTP郵件伺服器地址
smtp_server = 'smtp.qq.com'
# 郵件傳送人郵箱
from_addr = '******@qq.com' # 自己的郵想
# 郵件傳送人郵箱密碼
password = '******' # 郵箱密碼
# 郵件接收人
to_addr = '******@163.com' # 測試接收郵件地址郵箱
# 建立SMTP連線
conn = smtplib.SMTP_SSL(smtp_server,465)
# 設計除錯級別
conn.set_debuglevel(1)
# 登入郵箱
conn.login(from_addr,password)
# 建立郵件內容物件
msg = EmailMessage()
# 設定郵件內容
msg.set_content('您好,這是一封來自Python的測試郵件','plain','utf-8')
# 傳送郵件
conn.sendmail(from_addr,[to_addr],msg.as_string())
# 退出連線
conn.quit()

執行上述程式碼後,會報如下錯誤:

smtplib.SMTPAuthenticationError: (535,b'Error: \xc7\xeb\xca\xb9\xd3\xc3\xca\xda\xc8\xa8\xc2\xeb\xb5\xc7\xc2\xbc\xa1\xa3\xcf\xea\xc7\xe9\xc7\xeb\xbf\xb4: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256')

點選網址部分:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256,會跳轉到騰訊郵箱的如下頁面

就是我們在使用第三方客戶端登入QQ郵箱時,為了保證賬戶安全,需要使用說授權碼,在幫助中心中,點選生成授權碼就可以得到騰訊郵箱給出的授權碼了。

然後,使用得到的授權碼,替換下面登入login方法中的password程式碼,即使用使用者郵箱和授權碼登入

conn.login(from_addr,"授權碼")

修改完成後,重新執行就不會出現以上錯誤,並且成功的傳送郵件到了指定郵箱,可以登入收件郵箱已檢視是否收到,也有可能在垃圾箱裡。

至此,Python使用smtplib傳送郵件成功了。

總結

以上所述是小編給大家介紹的Python使用QQ郵箱傳送郵件報錯smtplib.SMTPAuthenticationError,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!

如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!