阿里云邮件SMTP发送简要指南.md 2.0 KB

阿里云邮件 SMTP 发送(Python 3.6+)

面向通过 SMTP 使用阿里云邮件推送发送邮件的最小步骤,来源于官方示例文档。

1. 前置准备

  • 开通邮件推送并创建发信地址、SMTP 密码。
  • 申请并配置回信地址(可选)、退信地址(Return-Path)。
  • Python 3.6+,内置 smtplib/email 模块即可。

2. SMTP 配置

项 值
主机 smtpdm.aliyun.com
端口 25 / 80(明文),465(SSL)
认证 控制台发信地址 + SMTP 密码
收件人数上限 单次不超过 60 人(含 To/Cc/Bcc)

3. 最小代码示例

import smtplib, email
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr

USERNAME = "your_sender@example.com"   # 发信地址
PASSWORD = "your_smtp_password"        # SMTP 密码
RCPT_TO = ["to1@example.com"]          # To 收件人

msg = MIMEMultipart("alternative")
msg["Subject"] = Header("自定义主题")
msg["From"] = formataddr(["自定义昵称", USERNAME])
msg["To"] = ",".join(RCPT_TO)
msg.attach(MIMEText("HTML 或纯文本内容", "html", "utf-8"))

client = smtplib.SMTP_SSL("smtpdm.aliyun.com", 465)  # 明文用 SMTP + 25/80
client.login(USERNAME, PASSWORD)
client.sendmail(USERNAME, RCPT_TO, msg.as_string())
client.quit()

4. 常用可选头

  • Reply-To:收信人回复的地址。
  • Return-Path:退信回执地址。
  • Message-Id/Date:使用 email.utils 生成以满足 RFC 5322。
  • X-AliDM-Trace:开启打开/链接跟踪,需在控制台预先创建 Tag。

5. 异常排查

  • 连接失败:检查端口可达性,必要时改用 SSL 465。
  • 认证失败:确认发信地址与 SMTP 密码匹配。
  • 收件人被拒绝:校验地址合法性与配额,单次≤60 人。
  • 数据被拒绝:检查邮件内容、附件大小与合规性。

6. 参考