知识库
通过您自己的 Mailgun 账户发送电子邮件
连接您自己的 Mailgun 账户:添加发送子域名、需发布的 SPF、DKIM 和 MX 记录、发送密钥而非您的私有 API 密钥,以及为什么 EU 托管的账户针对 US 主机返回 401 错误。
您将需要一个 Mailgun 帐户和对您域名 DNS 的访问权限。
Mailgun 的官方文档:添加并验证域名 · API 密钥 · 注册
1. 将您的发送域名添加到 Mailgun
在 Mailgun 控制面板中转到 Send → Domains → Add New Domain 并输入一个子域名,例如 mail.yourdomain.com。
⚠️ Mailgun 的官方指南建议使用子域名,这在此处比某些其他服务商更为重要:Mailgun 会在您提供的任何域名上设置其自己的 SPF 和 DKIM 记录,将其指向您的根域名意味着这些记录将与您的企业邮箱依赖的记录并存。
选择符合您数据存放期望的区域 —— US 或 EU。请记下来;您将在第 4 步中需要它,这是最容易出错的环节。
2. 发布 Mailgun 提供给您的 DNS 记录
Mailgun 会向您展示一个列表。在您的 DNS 服务商处添加每一个记录。
| 类型 | 主机 | 用途 | | --- | --- | --- | | TXT | mail.yourdomain.com | SPF — v=spf1 include:mailgun.org ~all | | TXT | mailo._domainkey.mail.yourdomain.com | DKIM 公钥 | | CNAME | email.mail.yourdomain.com | 跟踪与退信处理 | | MX | mail.yourdomain.com | 接收退信(Mailgun 的两个 MX 主机) |
⛔ 如果您的发送子域名已经有了一条 SPF 记录,请编辑它 —— 切勿添加第二条。 拥有两条 SPF TXT 记录的域名会导致 SPF 验证直接失败,这比完全没有记录还要糟糕。
然后在 Mailgun 中点击 Verify DNS Settings。状态变为绿色可能需要长达一小时的时间。
⭐ 即使您仅用于发送,也请添加 MX 记录。 它们是 Mailgun 收集退信的途径。没有它们,无效地址的退信将无处可去,Mailgun 无法对其进行抑制,而您将继续为空永远无法收到任何内容的地址支付发送费用。
3. 获取您的 API 密钥
Send → Sending → Domain settings → API keys,或您帐户的 API Keys 页面。
如果您的套餐提供,请使用限定在此域名的发送密钥,而不是您帐户的私有 API 密钥。发送密钥只能用于发送;私有密钥可以读取您的日志并更改您的帐户。我们没有任何理由持有第二种密钥。
4. 在 Zinn® 中进行连接
在控制面板中打开 Email sending 并填写:
- Provider — Mailgun
- Send from this domain —
mail.yourdomain.com(必须是域名,而不是邮箱地址) - Mailgun sending domain — 您在 Mailgun 中添加的相同域名
- Region —
us或eu,需与第 1 步相符 - Mailgun API key — 来自第 3 步的密钥
⛔⛔ 务必确认区域正确。 EU 托管的 Mailgun 帐户由完全不同的 API 主机提供服务。将 EU 帐户的密钥发送到 US 主机将返回 "401 Unauthorized" —— 它的表现与密钥错误完全一样。如果您的密钥确定无误却收到了 401 错误,几乎总是由于这个原因。
5. 发送测试并输入验证码
点击 Send test message,使用不同域名上的收件箱 —— Gmail 地址是理想的选择。从该收件箱中读取验证码并输入。您的邮件发送将立即切换。
当它无法正常工作时
401 Unauthorized — 区域错误(见上文),或者您粘贴了来自其他 Mailgun 帐户的密钥。请重新生成密钥而不是重新输入;开头的 key- 很容易漏掉。
测试邮件始终未送达 — 检查 Mailgun 的 Logs 页面。如果 Mailgun 完全没有记录,则说明凭据或域名错误。如果 Mailgun 接受了该邮件但在之后失败,原因将以纯文本形式显示在那里,并且几乎总是与 DNS 相关。
"Domain not found" — Mailgun sending domain 字段必须与 Mailgun 中列出的域名完全一致,包括子域名。yourdomain.com 和 mail.yourdomain.com 对 Mailgun 而言是两个不同的域名。
曾经正常工作但后来停止了 — 检查您的免费试用期是否已结束。Mailgun 试用帐户只能发送给授权收件人,因此发往您自己地址的测试邮件会继续正常工作,而发往您客户的所有邮件则会在悄无声息中失效。