从网上借鉴了一段 python 发邮件的代码,修改相应的参数运行,报错:(553, b"2ee163018c284c1-55377 mail from [zhangzhitao@sd.chinamobile.com] must be same as email head's from user:[]")
报错行:email_client.sendmail(from_addr=FROM, to_addrs=TO.split(','), msg=message.as_string()
已核实,邮箱的pop/stmp 服务开启,并填了正确的授权吗
找不出问题出在哪里
求指点:
以下为代码:
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib
# 设置邮箱的域名
HOST = 'smtp.sd.chinamobile.com'
# 设置邮件标题
SUBJECT = '截止目前数据'
# 设置发件人邮箱
FROM = 'zhangzhitao@sd.chinamobile.com'
# 设置收件人邮箱,可以同时发送到多个邮箱(用list)
TO = '18764746047@139.com'
# 设置附件模式
message = MIMEMultipart('mixed')
''' 添加正文 '''
content = '各位好,附件为最新日期文件,请查收!'
content_msg = MIMEText(content)
message.attach(content_msg)
csv_file = open('C:\\Users\\Administrator\\Desktop\\自动邮件测试.xlsx', 'rb').read()
csv = MIMEApplication(csv_file)
csv.add_header('Content-Disposition', 'attachment', filename='自动邮件测试.xlsx')
message.attach(csv)
# 获取SSL证书
email_client = smtplib.SMTP_SSL(host='smtp.sd.chinamobile.com')
# 设置域名和端口,端口为465
email_client.connect(HOST, '465')
# 邮箱授权码
email_client.login(FROM, '***********')
email_client.sendmail(from_addr=FROM, to_addrs=TO.split(','), msg=message.as_string())
# 关闭邮件发送客户端
email_client.quit()