Cover

使用 Mailgun 用于邮件服务

· Technology

在近期,我逐步将近乎所有的服务所使用的邮件服务都更换为 Mailgun,本文我将讲述我作出这一决定的原因和具体做法。

在确定使用 Mailgun 以前,我曾对 SMTP 邮件推送这一部分有过多种尝试。

曾用品

阿里 / 腾讯 企业邮箱(国内)

在我仍在职圆云的时候,我们依靠阿里云的企业邮箱进行企业事务处理。

企业邮箱同时兼具收发功能,具有较好的稳定性,但价格较高。对于个人服务来说,买五个账号起步,每年 600 元的企业邮箱,似乎毫无必要。 而腾讯企业邮箱等服务依赖企业微信,过于冗杂,对于个人来说过于麻烦,而且 Exchange 协议支持的不完善。

因此,我放弃这一想法。

阿里 / 腾讯 邮件推送

我曾在圆云时期使用阿里云的邮件推送进行邮件通知。其好处在于,稳定性较高,且支持多域名多用户等情况。 但其只提供了邮件发送服务,完全不对邮件接收做支持,甚至不支持转发,因此在使用一段时间后我放弃了这一方案。

ahdark.com 在很长一段时间均使用阿里云邮件推送进行通知,单独设立域名 notify.ahdark.com

Microsoft Exchange 企业邮箱

Microsoft Exchange 算是一个可自定义性较高的解决方案,依赖 Microsoft 企业服务。 使用开发者 E5 套餐和基础商业套餐都可以自由使用这一服务,成本可以控制在较为合适的区间内。 不仅如此,它还同时提供接收和发送邮件的功能,使得我的域名邮箱服务无需单独设立。 但缺点在于,其高度依赖微软的企业用户服务,而 login.live.com 的难用程度众所周知。 而且这一方案因服务器在国外,无法将邮箱挂在 Windows 10 和 Windows 11 的 Mail 应用程序,在系统级接收邮件变得较为困难。 因此我在使用一段时间这一方案后逐步进行更换,现仅保留 sourcegcdn.com 与 sourcegcdn.net 在使用这一方案。

Forward Mail

这一服务提供域名邮箱的邮件转发,功能不多但比较有效。 在 ahdark.com 使用阿里云邮件推送进行发件时,我也使用 Forward Mail 服务进行邮件的接受服务。 我将对应账号名的邮件转发至 ahdark@outlook.com (即我的主邮箱),以此实现对域名邮箱的接收。 但因其没有提供发件服务,我只得使用代理发送。 后续我使用 Mailgun 同时替代了这一服务和阿里云邮件推送,因此被弃用。

Mailgun

Mailgun 是一个专为电子邮件提供服务的公司,其主体为 Mailgun Technologies, Inc.,服务站点位于 https://www.mailgun.com。 其产品囊括了邮件的发送、转发、跟踪。支持SMTP、API两种邮件发送方法;WebHook、Forward两种邮件转发方法,和较为有效的跟踪方法。 因其较好的名誉和较高质量的服务,我在近期开始使用这一服务。

mailgun
mailgun

注册

Mailgun 的注册需要以下信息:

  • 一个已有的邮箱
  • 手机号码(需接收验证码)
  • 信用卡号(仅作验证)

我使用自己持有的 MasterCard 虚拟卡和虚拟手机号码进行注册

套餐

Image
Image

注册后会开启一个 30 天的使用,称作 Foundation Trial 套餐。在其阶段你可享受以下服务:

  • 5000 条邮件收发 / 月
  • 5 天的日志追踪期
  • 7*24 服务支持

30 天后会自动转换为 35 美元 / 月 的 Foundation 50k 套餐,即 50k 邮件收发 / 月。

注册后,你可以在 Billing 页面进行 Downgrade 以降级到按量付费(即用即付)的 Flex 套餐。此套餐没有月固定付费,提供 1000 条邮件收发 / 月 的免费额度和 1000 条额外邮件收发 / 1 美元 的即用即付模式。

添加域

注册后,你可以在后台添加域名。

Image

Mailgun 会赠送一个 Sandbox 域名用于测试,你也可以添加自己的域名。

添加域名需要对域名添加 DNS 解析:

记录名记录类型记录值示例
@TXTv=spf1 include:mailgun.org ~all
mx._domainkeyTXTk=rsa; p=
@MX10 mxa.mailgun.org
@MX10 mxb.mailgun.org

具体请参考添加时说明。

SMTP 发件

添加域名后,你可以在 Sending - Domain Settings - SMTP credentials 找到 SMTP 凭据的设置项。

New SMTP credentials
New SMTP credentials

设置凭据后,你会得到对应账号的密码。

而后可使用以下凭据登录:

  • SMTP服务器:smtp.mailgun.org
  • 端口:25 / 465 (SSL/TLS) / 587
  • 账号:no-reply@ahdark.blog
  • 密码:<your-password>

收件(转发)

Image

你可在 Receiving 里设置邮件接收的处理方法,支持邮箱转发和WebHook两种方法,具体可参考文档配置:https://documentation.mailgun.com/en/latest/user_manual.html#routes

WordPress 使用 Mailgun 发件

Mailgun 官方制作了 Mailgun for WordPress 这一插件,也是我所使用的方法。

首先需在 Mailgun 后台生成 API 凭据,可在 Sending - Domain Settings - Sending API keys 找到。

生成后,可凭 Mailgun 添加的域名和 API Key 作为登陆凭据,只需在 WordPress 的 Mailgun 插件设置页面填入。当然,也需完善相关信息。

Image

完成配置后,可在底部点击保存,而后点击 Test Configuration 按钮进行测试。

总结

以上便是本篇文章的全部内容。

之所以没有考虑自建 SMTP 的原因主要就是因为发件收件的不稳定,且几乎全部国内云服务厂商都封禁了 25 端口或严格限制发件服务器架设。

正是因此,国内服务器自建 SMTP 的法子基本被封死,我也因此写了本文。

在最后,只希望邮件服务不会如同短信服务一般,被滥用作为恶意攻击他人的工具。

Comments

Send Comments

Markdown supported. Please keep comments clean.