.SMTPDataError: 554, 'DT:SPM

本文介绍如何使用Python通过163邮箱服务器发送包含中文内容的邮件,包括正确的消息头设置及避免发送失败的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. #coding: utf-8  
  2. import smtplib  
  3. from email.mime.text import MIMEText  
  4. from email.header import Header  
  5.   
  6. sender = 'xxxx@163.com'  
  7. receiver = 'xxxx@qq.com'  
  8. subject = '放假通知'  
  9. smtpserver = 'smtp.163.com'  
  10. username = ''  
  11. password = ''  
  12.   
  13. msg = MIMEText('大家关好窗户','plain','utf-8')#中文需参数‘utf-8',单字节字符不需要  
  14. msg['Subject'] = Header(subject, 'utf-8')  
  15. msg['From'] = 'Tim<xxxx@163.com>'    
  16. msg['To'] = "xxxx@qq.com"  
  17. smtp = smtplib.SMTP()  
  18. smtp.connect('smtp.163.com')  
  19. smtp.login(username, password)  
  20. smtp.sendmail(sender, receiver, msg.as_string())  

  1. smtp.quit()  

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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值