問(wèn)題描述:今天想做一個(gè)發(fā)郵件的小功能。在看完教程之后自己寫了一小段,一直報(bào)如題的錯(cuò)誤。
smtplib.SMTPDataError: (554, b'DT:SPM 126 smtp6,j9KowABH6QtCTkdc0WH6AA--.267S2 1548176964,please see http://mail.163.com/help/help_spam_16.htm?ip=122.96.40.112&hostid=smtp6&time=1548176964')
找了好久,大家都在說(shuō)是由于沒(méi)有寫message['from']和message['to']而被當(dāng)成垃圾郵件過(guò)濾掉了。另外,在寫具體收件人和寄件人時(shí),需要寫全,也就是把郵件地址包含進(jìn)去,否則也沒(méi)有用。
解決方案:
sender = 'wusonglin12138@126.com'
receivers = uemail1
message = MIMEText('手寫數(shù)字識(shí)別', 'plain', 'utf-8')
message['Subject'] = Header('手寫數(shù)字識(shí)別', 'utf-8')
message['From'] = 'wsl'+'<wusonglin12138@126.com>'
message['To'] = '' + '<' + uemail1 + '>'
smtp = smtplib.SMTP('localhost')
smtp.connect('smtp.126.com')
smtp.login('wusonglin12138@126.com', 'wsl83918543')
# # smtp.send_message(message, sender, receivers)
smtp.sendmail(sender, receivers, message.as_string())
smtp.quit()

收到郵件
補(bǔ):沒(méi)有收到郵件記得在垃圾箱里找找,郵箱有過(guò)濾機(jī)制,有些諸如驗(yàn)證碼之類的敏感詞容易被過(guò)濾。
參考文獻(xiàn)
Python使用smtplib模塊發(fā)送電子郵件的流程詳解python腳本之家