smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp10,DsCowAA3nir1u6xZq42WDw--.22935S2 1504492533,please

 1 # from email.mime.text import MIMEText
 2 #
 3 # msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
 4 # # 输入Email地址和口令:
 5 # from_addr = input('From: ')
 6 # password = input('Password: ')
 7 # # 输入SMTP服务器地址:
 8 # smtp_server = input('SMTP server: ')
 9 # # 输入收件人地址:
10 # to_addr = input('To: ')
11 #
12 # import smtplib
13 #
14 # server = smtplib.SMTP(smtp_server, 25)  # SMTP协议默认端口是25
15 # server.set_debuglevel(1)
16 # server.login(from_addr, password)
17 # server.sendmail(from_addr, [to_addr], msg.as_string())
18 # server.quit()
19 
20 
21 
22 
23 # coding: utf-8
24 import smtplib
25 from email.mime.text import MIMEText
26 from email.header import Header
27 
28 sender = 'fengyiru6369@163.com'
29 receiver = '1194150169@qq.com'
30 subject = 'python email test'
31 smtpserver = 'smtp.163.com'
32 username = 'fengyiru6369@163.com'
33 password = 'XXXXXXXX'  # 是授权密码,而不是登录密码
34 
35 msg = MIMEText('你好', 'text', 'utf-8')  # 中文需参数‘utf-8’,单字节字符不需要
36 msg['Subject'] = Header(subject, 'utf-8')
37 
38 smtp = smtplib.SMTP()
39 smtp.connect('smtp.163.com')
40 smtp.login(username, password)
41 smtp.sendmail(sender, receiver, msg.as_string())
42 smtp.quit()

只赋值了msg['Subject'], 没有赋值msg['From'], msg['To'],导致出现554情况,更改了后就好了。

注意MIMEText初始化的时候,中文的第二个参数要用'plain',我用'text',中文就显示不出来。

msg['From'] 中人名为Tim,会和下面对应起来。

原文地址:https://www.cnblogs.com/fengyiru6369/p/7472679.html