使用python的smtplib模块发送邮件时出现
1 |
smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp9,DcCowAA3Orz0HtU+2AQ--.32881S2 1562582517,please see http://mail.163.com/help/help_spam_16.htm?ip=xxx.xxx.xxx.xxx&hostid=smtp9&time=1562582517' |
通过给出的链接找到错误代码含义:
554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件
然后百度Google查了一下,大致是两种问题导致
1.发件人和收件人格式配置问题
2.发件内容导致被被拦截
解决思路:
开启debug
1 |
set_debuglevel(1) |
在日志中发现发件地址和收件地址被转码,@变成了“=40”
查看配置发现问题出现utf-8上
1 2 |
message['From'] = Header("%s" % sender, 'utf-8') message['To'] = Header(",".join(receivers), 'utf-8') |
将From和To中的utf-8去掉之后,邮件发送成功