smtp发邮件出错

自己尝试用Python的SMTP发邮件时遇到了一些问题,例如执行后报错:

smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp12,EMCowAAneOEunD5d9NOgDA--.24851S2 1564384302,please see http://mail.163.com/help/

源代码为:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

fromaddr = 'lhj12649@163.com'  # 邮件发送方邮箱地址
password = 'llllll'  # 密码(部分邮箱为授权码)
smtpserver = 'smtp.163.com'
toaddrs = '1374545958@qq.com' # 邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发


message = MIMEText('qinaide','plain')   # 邮件内容
message['From'] = Header('liu')   # 邮件发送者名字
message['To'] = Header('wdf')   # 邮件接收者名字
message['Subject'] = Header('SMTP test')   # 邮件主题


mail = smtplib.SMTP()
mail.connect(smtpserver)   # 连接 qq 邮箱
mail.login(fromaddr, password)   # 账号和授权码
mail.sendmail(fromaddr,toaddrs,message.as_string())   # 发送账号、接收账号和邮件信息
mail.quit()
print("发送成功!")


代码在从qq邮箱发送到qq邮箱时是完全没问题的,就改了一下163邮箱发现报错了;

我查了一下,554 DT:SUM 信封发件人和信头发件人不匹配;
需要写具体收件人和寄件人,需要写全,也就是把邮件地址包含进去。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

fromaddr = 'lhj12649@163.com'  # 邮件发送方邮箱地址
password = 'llllll'  # 密码(部分邮箱为授权码)
smtpserver = 'smtp.163.com'
toaddrs = '1374575958@qq.com' # 邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发


message = MIMEText('你好','plain')   # 邮件内容
#message['From'] = 'lhj'+'<lhj12649@163.com>'   # 邮件发送者名字
#message['To'] = 'liu'+'<1375785958@qq.com>'   # 邮件接收者名字
message['From'] = Header('liu')   # 邮件发送者名字
message['To'] = Header('wdf')   # 邮件接收者名字
message['Subject'] = Header('SMTP test')   # 邮件主题


mail = smtplib.SMTP()
mail.connect(smtpserver)   # 连接 qq 邮箱
mail.login(fromaddr, password)   # 账号和授权码
mail.sendmail(fromaddr,toaddrs,message.as_string())   # 发送账号、接收账号和邮件信息
mail.quit()
print("发送成功!")



这么改完就可以发送成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值