Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError

最新在学习Python的基础入门系列课程,今天学习到使用python 的内置库smtplib发送邮件内容。
使用Python发送邮件步骤简单: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, "受权码")

修改完成后,从新运行就不会出现以上错误,而且成功的发送邮件到了指定邮箱,能够登陆收件邮箱已查看是否收到,也有可能在垃圾箱里。ui

至此,Python使用smtplib发送邮件成功了。spa

欢迎你们关注个人公众号:君伟说。debug

相关文章
相关标签/搜索