Talk is cheap, speak in code.
#!/usr/bin/python
# -*- coding:utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 第三方 SMTP 服务
mail_host = "smtp.qq.com" # 设置服务器
mail_user = "xxxxx@qq.com" # 用户名
mail_pass = 'xxxxx' # 口令,建议使用客户端授权码
sender = 'xxxxx@qq.com'
receiver = 'receiverxxx@qq.com'
receivers = [receiver ] # 收件邮箱
def send_mail(content):
message = MIMEText(content, 'plain', 'utf-8')
message['From'] = Header("SenderName <" + sender + ">", 'utf-8')
message['To'] = Header("ReceiverName<" + receiver + ">", 'utf-8')
subject = '测试邮件'
message['Subject'] = Header(subject, 'utf-8')
try:
smtp_obj = smtplib.SMTP()
smtp_obj.connect(mail_host, 25) # 25 为 SMTP 端口号
smtp_obj.login(mail_user, mail_pass)
smtp_obj.sendmail(sender, receivers, message.as_string())
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 邮件发送失败")
注:
1. 登录密码建议使用客户端授权码,部分邮箱好像有限制只能使用授权码登录;
2. Header书写注意规范,部分邮件实际收件人与Header信息不符会发送失败,如网易邮箱;
3. 邮件标题或内容中包含“测试”等内容可能会被服务器拦截。