今天学习使用邮箱自动化办公的过程中run时一直出现如下错误;smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.
1 import smtplib
2 from smtplib import SMTP_SSL
3 from email.mime.text import MIMEText
4 from email.mime.multipart import MIMEMultipart
5 from email.header import Header
6
7 host_server = 'smtp.gmail.com'
8
9
10 sender_gmail = 'xxxxxxxx@gmail.com'
11 pwd = 'xxxxxxxxxxx' #邮箱密码
12
13 sender_gmail_mail = 'xxxxxxxx@gmail.com' #发件人
14 receiver = 'xxxxxxxxxxx@qq.com' #收件人
15
16 mail_title = 'python自动化' #邮件标题
17
18 mail_content = '你好这是使用python进行测试' #正文
19
20 msg = MIMEMultipart() #邮件主体
21 msg['subject'] = Header(mail_title,'utf_8')
22 msg['From'] = sender_gmail_mail
23 msg['To'] = Header('test','UTF-8')
24 msg.attach(MIMEText(mail_content,'plain','utf-8')) #邮件正文 plain无格式
25
26 stmp = SMTP_SSL(host_server) #ssl登录
27
28 stmp.login(sender_gmail,pwd)
29 stmp.sendmail(sender_gmail_mail,receiver,msg.as_string())
30 stmp.quit()
解决方案
网上查找资料需要进行如下设置在谷歌邮箱中
1.确定账号未被限制,在浏览器上能正常登陆gmail.
2.在设置->转发和 POP/IMAP 中开启pop和imap,两个都要开启.
3.开启账号的二步验证:帐户和导入->更改密码恢复选项 查看两步验证行,若是停止状态则点击根据指标开启两步验证
4.生成16位应用专用密码:https://security.google.com/settings/security/apppasswords
在这里根据提示生成一个应用专用密码,生成成功后复制密码然第5步。
5.帐户和导入->更改密码 把你的原始密码更改为刚生成的16位密码。
把密码填入程序中,现在smtp可以发送成功了
必须开启两步验证,及使用专用密码登录,否则报错
参考
原文链接:https://blog.csdn.net/bichir/article/details/51506474
手机扫一扫
移动阅读更方便
你可能感兴趣的文章