折腾:
【已解决】Python中如何把smtp的From和To进行Header编码
期间,遇到用[email protected]去用账号和密码去登录smtp想要去发邮件,结果登录就出错:
去把发件人换一下
但是还是163的发送给另外一个163和crifan.com的
结果竟然:
smtpObj.login(sender, senderPassword)
File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py", line 622, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (550, ‘User has no permission’)
但是同样代码,之前用[email protected]去登录就可以的。
smtp 163 550 User has no permission
邮箱不可用 550 User has no permission – CSDN博客
http://blog.csdn.net/hughnes/article/details/52070878
去分别登录两个163账号,去看看配置有什么不一样
好像默认没有开启smtp?
再去另外账号看看:
果然是:
这个账号开启了163的POP和SMTP
所以解决办法就简单了:
【总结】
去开启这个163账号中的smtp服务:
登录163邮箱-》设置-〉POP3/SMTP/IMAP
->POP3/SMTP/IMAP->设置POP3/SMTP/IMAP:勾选上:
POP3/SMTP服务
IMAP/SMTP服务
您已启用授权码,请使用授权码登录第三方邮件客户端
所以,后续去登录的话,试试直接用授权码去登录
回来确认smtp,的确已经开启了:
即可。
还收到了短信通知授权码开通呢:
然后去试试用授权码是否可以登录。
代码:
smtpObj = smtplib.SMTP(smtpServer, smtpPort)
smtpObj.set_debuglevel(1)
smtpObj.login(sender, senderPassword)
是可以正常登录了。
【总结】
之前的163邮箱,默认没有开启的smtp服务。
现在想要去开启的话,需要先去开启授权码。
开启授权码后,此处python代码中smtp直接用授权码即可当作密码去登录。
转载请注明:在路上 » 【已解决】Python中smtp用163账号发送邮件出错:550 User has no permission