python3使用smtplib和MIME发送邮件失败
代码:
from smtplib import SMTP
from email.mime.text import MIMEText
from email.header import Header
def send_email(SMTP_host, from_addr, password, to_addrs, subject, content):
email_client = SMTP(SMTP_host)
email_client.login(from_addr, password)
# create msg
msg = MIMEText(content,'plain','utf-8')
msg['Subject'] = Header(subject, 'utf-8')#subject
msg['From'] = 'main<xxxxx@163.com>'
msg['To'] = "xxxxx@126.com"
email_client.sendmail(from_addr, to_addrs, msg.as_string())
email_client.quit()
if __name__ == "__main__":
send_email("smtp.163.com","xxxxx@163.com","password","xxxxx@126.com","test","hellow")
运行错误:
Traceback (most recent call last):
...
File "D:/bioinformatics/python脚本/mai.py", line 14, in send_email
email_client.sendmail(from_addr, to_addrs, msg.as_string())
File "D:\软件\python\lib\smtplib.py", line 799, in sendmail
raise SMTPDataError(code, resp)
smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp8,DMCowACX58anaFJX9+uwAA--.20172S2 1465018537,please see http://mail.163.com/help/help_spam_16.htm?ip=219.143.13.117&hostid=smtp8&time=1465018537')
在网上找了很多方法,把防火墙也关了,修改了发件人收件人名称,但还是没有效果,真的不知道是什么原因。。
드디어 해결책을 찾았습니다.
이메일 제목이 'test'인 경우 오류가 발생하므로 다른 단어로 변경하세요. . 이상한 이유가 뭔지 모르겠어요
오류 보고서가 매우 명확하지 않나요?
오류 링크: http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html
당신이 게시한 내용을 확인하는 것이 필요합니다.
1) 이메일이 휴지통에 들어가지 않도록 휴지통을 확인하세요.
으아악2) 보낸 사람과 받는 사람이 내용과 일치해야 합니다. 일치하지 않는 필드는 입력하지 마세요. 메일 서버.
아래 코드를 테스트하면 163 메일박스를 이용해 QQ 메일박스로 이메일을 보낼 수 있습니다.
그렇습니다. 성공적으로 전송하려면 발신자와 수신자의 서버가 163개여야 합니다. 그렇지 않으면 오류가 보고됩니다!