Python使用QQ郵箱發(fā)送郵件報錯smtplib.SMTPAuthenticationError
最新在學習Python的基礎入門系列課程,今天學習到使用python 的內置庫smtplib發(fā)送郵件內容。
使用Python發(fā)送郵件步驟簡單:
- 創(chuàng)建SMTP連接
- 使用郵箱和密碼登錄SMTP服務器
- 創(chuàng)建郵件內容對象EmailMessage, 并使用set_content方法設置郵件內容
- 調用sendmail方法發(fā)送郵件
具體代碼如下:
import smtplib from email.message import EmailMessage # 定義SMTP郵件服務器地址 smtp_server = 'smtp.qq.com' # 郵件發(fā)送人郵箱 from_addr = '******@qq.com' # 自己的郵想 # 郵件發(fā)送人郵箱密碼 password = '******' # 郵箱密碼 # 郵件接收人 to_addr = '******@163.com' # 測試接收郵件地址郵箱 # 創(chuàng)建SMTP連接 conn = smtplib.SMTP_SSL(smtp_server, 465) # 設計調試級別 conn.set_debuglevel(1) # 登錄郵箱 conn.login(from_addr, password) # 創(chuàng)建郵件內容對象 msg = EmailMessage() # 設置郵件內容 msg.set_content('您好,這是一封來自Python的測試郵件', 'plain', 'utf-8') # 發(fā)送郵件 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: )
點擊網(wǎng)址部分:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256,會跳轉到騰訊郵箱的如下頁面
就是我們在使用第三方客戶端登錄QQ郵箱時,為了保證賬戶安全,需要使用說授權碼,在幫助中心中,點擊生成授權碼就可以得到騰訊郵箱給出的授權碼了。
然后,使用得到的授權碼,替換下面登錄login方法中的password代碼,即使用用戶郵箱和授權碼登錄
conn.login(from_addr, "授權碼")
修改完成后,重新運行就不會出現(xiàn)以上錯誤,并且成功的發(fā)送郵件到了指定郵箱,可以登錄收件郵箱已查看是否收到,也有可能在垃圾箱里。
至此,Python使用smtplib發(fā)送郵件成功了。
總結
以上所述是小編給大家介紹的Python使用QQ郵箱發(fā)送郵件報錯smtplib.SMTPAuthenticationError,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
python使用fcntl模塊實現(xiàn)程序加鎖功能示例
這篇文章主要介紹了python使用fcntl模塊實現(xiàn)程序加鎖功能,較為詳細的分析了fcntl模塊的具體功能并結合實例形式給出了Python實現(xiàn)程序加鎖的操作技巧,需要的朋友可以參考下2017-06-06python SQLAlchemy的Mapping與Declarative詳解
這篇文章主要介紹了python SQLAlchemy的Mapping與Declarative詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07