官方文档email: 示例 — Python 3.11.1 文档
550 没有开通授权码解决方法:1、在QQ邮箱设置-账户,通过短信验证开启相关服务。
2、在163邮箱的设置中开启相关服务
改好之后运行以下代码即可:
python运行问题Traceback (most recent call last)
报错:smtplib.SMTPAuthenticationError:(550,b'User has no permission')
此错误消息指示 SMTP 身份验证失败。它表示尝试使用 SMTP 服务器进行身份验证的用户没有这样做的权限。出现这种情况可能有多种原因,如登录凭据不正确、用户没有对服务器的正确权限、帐户被禁用或服务器配置为不允许特定用户进行身份验证。要解决这个问题,您应该检查登录凭据(看具体操作,我也就提供一些思路),并验证用户对服务器拥有正确的权限。
具体未设置客户端授权密码出现的报错该问题是由于未设置授权密码出错,具体解决办法如下:
改好之后运行以下代码即可:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
mail_host="smtp.163.com" #设置服务器
mail_user="tina_huanghui@163.com" #用户名
mail_pass="****" #授权码,注意不是邮箱登录密码,是上述设置的授权密码!!!
sender = 'tina_huanghui@163.com'
receivers = ['425845636@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
message = MIMEText('test', 'plain', 'utf-8')
message['From'] = "tina_huanghui@163.com"
message['To'] = "425845636@qq.com"
subject = 'test email'
message['Subject'] = Header(subject, 'utf-8')
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)
smtpObj.set_debuglevel(1)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print("邮件发送成功")