错误含义:
•554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;
http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html
说明:代码里没有指定发收件人
修改之前:
message = MIMEMultipart()
message.attach(textApart)
message.attach(xlsxApart)
message['Subject'] = 'new notification'
修改之后:
message = MIMEMultipart()
message.attach(textApart)
message.attach(xlsxApart)
message['From'] = sender
message['To'] = receivers[0]
message['Subject'] = 'new notification'
完整示例:
def sendMail(msg):
"""
发送邮件
msg: 正文内容
"""
mail_host = 'smtp.163.com'
mail_user = 'xxx'
mail_pass = 'xxxx'
sender = 'DJ-163<xxx@163.com>'
receivers = ['DJ-QQ<xxx@qq.com>']
# 文本
textApart = MIMEText(msg, 'plain', 'utf-8')
# 附件
xlsxFile = fileName
xlsxApart = MIMEApplication(open(xlsxFile, 'rb').read())
xlsxApart.add_header('Content-Disposition',
'attachment', filename=xlsxFile)
# 构建邮件
message = MIMEMultipart()
message.attach(textApart)
message.attach(xlsxApart)
message['From'] = sender
message['To'] = receivers[0]
message['Subject'] = 'new mail'
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(
sender, receivers, message.as_string())
smtpObj.quit()
print('邮件已经成功发送!')
except smtplib.SMTPException as e:
print('邮件发送失败', e) # 打印错误