邮件发送服务 Mailgun 的国内替代品 Hedwi

更新日期: 2020-07-17 阅读次数: 194 字数: 930 分类: 服务器

之前遇到过俄罗斯服务器上无法通过 SMTP 服务发送邮件的问题,转而尝试:

  • Mailgun 的 http api 发送邮件的解决方案,但是无奈账号直接被 Mailgun 冻结,估计是歧视国内开发者吧。
  • 尝试阿里云邮件服务,遗留的老旧 PHP 环境硬是没调通阿里云 SDK,进而放弃。

后来无奈使用了转发的解决方案。

但是我一直在寻找一个靠谱的邮件发送服务,最好是像 Mailgun 一样简单的 http api,而且不歧视国内开发者的。直到前几天,微信好友 Solos 老板霸道地给我打了 1000 块钱广告费,让我给他的 Hedwi 邮件发送服务加个友链。我才发现原来国内还有这么好用的服务。。。

收红包

我礼貌性地尝试退回广告费,但是 Solos 老板没有收。。。

为什么是 Hedwi 这个奇怪的名字

据 solos 大师说,这个名字来源于哈利波特。。。

海德薇(Hedwig)是《哈利·波特》系列中一只为哈利·波特充当信使的重要宠物

好吧,幼稚!

Hedwi 的优势

  • 支持自定义域名
  • 通过配置 SPF、DKIM、DMARC 记录,提高邮件到达率
  • 每天免费 100 封,超出后每一千封邮件2元。对我来说足够了。
  • http api 的调用方式非常方便,省去了额外开端口的麻烦。俄罗斯那种共用虚拟主机就是一个教训。

崎岖的配置过程

折腾了有一个小时,才把 DNS 配置好 SPF、DKIM、DMARC记录 (为何要配置这三个 DNS 记录,可以参考文末概述,或者查看 Hedwi 的文档)。原因在于一是不了解流程和原理;二是用户引导做的不够完善。实际上只需要5分钟就能配置好,并发送出第一封 Hello World 邮件。

首先,注册 Hedwi 账号,然后在顶部域名菜单 (https://www.hedwi.com/domain) 下添加一个域名,最好是一个二级域名。

邮件发送服务 Mailgun 的国内替代品 Hedwi

然后,点击配置,参考配置页的 DNS 记录,在你的域名解析服务后台,添加对应的服务。例如,阿里云解析,Cloudflare 解析,或者 DNSPod 解析。我用的是 Cloudflare 的解析服务,两分钟就添加完。注意:

  • 这里用的是 TXT 记录来实现的,不要搞错。虽然 cloudflare 支持这三种记录,但是国内的好多服务商不支持,所以除了 MX 记录,其他三个需要用 TXT 记录
  • MX 记录的优先级字段,一个设置为 5,一个设置为 10 就行。代表优先用哪个。

添加完毕之后,点击按钮“检查 DNS 记录”,当状态全部为对号时,表示已经配置完成。

邮件发送服务 Mailgun 的国内替代品 Hedwi

然后就可以发送第一封邮件了。

发送邮件

> curl -s --user 'api:xxx-xxx-xxx-xxx' \
                                   'https://api.hedwi.com/mail/stat.notefeel.com' \
                                   -F from='report@stat.notefeel.com' \
                                   -F to='34334807@qq.com' \
                                   -F subject='Hello 测试报告' \
                                   -F text='Testing email from Hedwi! 报告统计。'
{"code":0,"id":xxx,"message":"queue email successfully","ts":1594956444}⏎

我配置了一个 stat.notefeel.com 的二级域,专门来给我的小程序用户来发送统计报表。测试了一下,确实方便。效果图:

邮件发送服务 Mailgun 的国内替代品 Hedwi

SPF、DKIM、DMARC 这三个 DNS 记录是做什么的?

  • 提高传输的机密性,包括端对端加密: STARTTLS, S/MIME
  • 邮件的身份验证: SPF, DKIM, DMARC

极其枯燥的说明文档: https://juejin.im/post/5e8beeaff265da47cf01ca62

MX 记录的优先级是什么意思

在 cloudflare 上设置 DNS MX 记录解析的时候,需要填写一个优先级字段,是个数值。

MX优先级,用来指定邮件服务器接收邮件的先后顺序,数值越小优先级越高。

  • 当DNS服务器的解析记录中只有一条MX记录时,MX优先级没有意义。
  • 当DNS服务器的解析记录中存在多条MX记录时,邮件发送方的DNS服务器会优先把邮件投递到MX优先级高的邮件服务器。
  • 如果该服务器故障无法接收邮件,邮件发送方的DNS服务器会自动选择下一优先级的邮件服务器投递邮件。

针对 qq 邮件做认证

https://open.mail.qq.com/openmail/openmailhome

领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

相关文章

爱评论不评论

近期节日

2020年08月15日 日本投降日
2020年08月22日 处暑
2020年08月25日 七夕
2020年09月02日 中元节
2020年09月03日 抗日胜利纪念日
2020年09月07日 白露
2020年09月08日 国际扫盲日
2020年09月10日 教师节
2020年09月16日 国际臭氧层保护日
2020年09月16日 世界清洁地球日
2020年09月18日 "九一八"事变纪念日
2020年09月20日 国际爱牙日
查看更多节日