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發送郵件成功了。

歡迎大家關注我的公眾號:君偉說。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM