python smtp邮件发送失败怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python smtp邮件发送失败怎么办相关的知识,希望对你有一定的参考价值。

原创:
失败原因可能有如下:1、主机与邮件服务器网络不通;2、邮件发送账号密码未设置或者设置不正确;3、python语法不正确
解决办法:1、主机与邮件服务器网络不通:需要保证主机可以正常访问外网,这样就可以访问到邮件服务器了。2、邮件账号密码未设置或者不正确:首先通过其他浏览器进行邮箱登陆验证,若可以正常登录说明邮箱账号正确,再根据你自己设置的邮箱账号配置文件的格式要求进行修改即可。3、python语法不正确,脚本编写完成之后可以执行如下命令进行语法校验:pyhton -c sendmail.py 这样就可以校验你的sendmail.py脚本的语法是否有问题,若有问题只需要根据提示定位到相应的行进行修正即可。
参考技术A

以下代码调试通过:

# coding: utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = 'xxxxxx@139.com'
receiver = 'lu.han@beebank.com'
subject = 'python email test'
smtpserver = 'smtp.139.com'
username = '15010048427@139.com'
password = 'xxxxxx'

msg = MIMEText('你好', 'text', 'utf-8')  # 中文需参数‘utf-8',单字节字符不需要
msg['Subject'] = Header(subject, 'utf-8')

smtp = smtplib.SMTP()
smtp.connect('smtp.139.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()

运行效果:

使用Python的smtp发送邮件失败

用网易邮箱的话是SMTPAuthenticationError: (550, b'User has no permission')
QQ邮箱是Connection unexpectedly closed

参考技术A subject参数要写的正常一点,不要让对方一检测就觉得是垃圾邮件 参考技术B 邮箱账户密码是否正确?邮箱是否开启了stmp?追问

的确没开启……不过开启以后目标邮箱(收信邮箱)是QQ邮箱的话还是不行。
(554, b'DT:SPM 163
please see http://mail.163.com/help/help_spam_16.htm?ip=60.12.8.177&hostid=smtp3&time=1526269022')

追答

不是返回了错误的链接吗?你访问看看啊

本回答被提问者和网友采纳

以上是关于python smtp邮件发送失败怎么办的主要内容,如果未能解决你的问题,请参考以下文章

python通过SMTP发送邮件失败,报错505/535

使用 Python 示例发送电子邮件失败

linux PHPMailer 发送邮件sendmail 发邮件失败问题

使用Python的smtp发送邮件失败

SMTP Connect() 失败。邮件未发送。邮件程序错误:SMTP Connect() 失败

javamail的邮件发送有验证失败错误