#!/usr/bin/python # -*- coding: UTF-8 -*-
import smtplib from email.mime.text import MIMEText lost_home = 'smtp.163.com' # 邮件发送服务 sender = '***@163.com' # 邮件发送方 sender_ps = "***" # 邮件发送方密码 receivers = '***@qq.com' # 邮件接收方 # 邮件内容 conntent = '邮件发送测试,这是一封参数变量化的邮件发送' # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码 message = MIMEText(conntent, 'plain', 'utf-8') # message 中的 from 和 to 最好对应邮件发送和接收方 message['From'] = sender message['To'] = receivers subject = 'Python SMTP 邮件测试' message['Subject'] = subject # 邮件标题 try: smtp = smtplib.SMTP() smtp.connect(lost_home,25) smtp.login(sender,sender_ps) smtp.sendmail(sender, receivers, message.as_string()) print("邮件发送成功") except smtplib.SMTPException: print("Error: 无法发送邮件")
以上代码以 163 为第三方 SMTP 服务进行发送。在编写过程中遇到的问题。
主要错误:
1)554 DT SPM:错误原因,发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件。这是 163 邮箱给出的解释。进行百度上部分的总结,发现错误的原因大致如下:
- 频繁发送邮件:频繁性质的进行两个邮箱的邮件发送会出现该问题。
- 邮件内容包含 Test 等信息时。
- 代码 Message[] 列表中 from 和 To 的值与元定义的值不相同时。
注:目前暂时只遇到上述问题,后续会慢慢进行补充。