需要给博客做一个找回密码,就要用到发送邮件的服务,于是便有了此文(踩坑记录)。

说起邮件第一反应就是mailgun了。但是一看,发现取消了免费额度,现在注册只有3个月免费试用flex套餐,限额是5000封邮件。

搜索了一下,发现还是有挺多能提供免费使用的:

amazon ses是aws下面的一个服务,也就是有aws账号就能开通使用,额度是2万封2美刀每个月。对于从ec2服务器上发送的邮件,前62000封是免费的。

sendgrid,sendinblue,mailjet对比如下:

免费额度支付方式
sendgrid每日100封无需信用卡
sendinblue每日300封无需信用卡
mailjet每月6000封,但是每天200封无需信用卡

抱着我全都要的心态,都注册了试试。

当然除了这些之外,还有很多其他的邮件服务,由于一些原因就没有继续尝试了……大家如果有好用的也欢迎推荐。


SES Amazon Simple Email Service

首先是aws ses,有aws账号的话,搜索ses服务就能开通了;如果没有aws账号的话,需要一张信用卡来激活aws账号。

ses服务开通极其简单,添加域名cname记录进行dkim验证完后就显示开通了,然而发送测试邮件时却提示

仔细一看邮箱状态:

aws你可真会玩啊,sandbox只给在aws内部发送测试邮件,开通发送功能还要发工单审核。

工单内容也比较简单,填写一下网站链接和使用场景就通过了,不过等了倒是挺久,晚上申请第二天才通过……

发送的测试邮件,发件人地址虽然是自己的域名,但是还有一行,提示由aws代发:

SendGrid

注册的时候直接把我卡下来了,提示是风险用户,不知道是什么原因了。系统自动生成了一个工单,客服问了一些,关于账户问题和使用场景之类的问题。回答完了之后就通过验证了。我说我是开发者,然后客服还向我要了我的GitHub个人地址……虽然我上面就只有一些fork的仓库。

通过注册验证之后,在面板上添加了发送域名的验证,直接就能发邮件了啊,有点爽有木有。不过有可能是因为注册的时候已经验证过了的关系。

发送的测试邮件,发件人地址是自己域名的地址。

Sendinblue

注册的时候倒是很顺利。发送邮件用的smtp用户名,居然是注册的邮箱名,作为一个隐私人感觉有点不妥。填写好域名验证之后发送却提示:

无奈,遂发工单请求激活。一天过去了,还没有客服回复……也有可能是周末的原因,也有可能是圣诞节的原因,总之就是还没回复。

Mailjet

mailjet跟mailgun看起来就是一家的。事实上好像也是同一个母公司。

注册的过程也相当顺利,登录之后出来一个非常友好的操作指引面板:

当然我是dev用途,就按照步骤操作了。但是第一步就是发送邮件是否有些不妥,难道不需要验证吗?

仔细一看网页,右下角有一行很小的提示:

自然也是发工单申请激活了,也是过了一天还没有答复……

总结一下,虽然说是免费服务,注册门槛倒是挺高的,就连付费的ses也是催了一次工单才开通的。

要用自己域名发送的话,暂时来看还是sendgrid比较完美。看介绍sendinblue和mailjet也会有服务商提示,等账号激活了之后补上测试邮件。

顺带一提,还尝试了阿里云和腾讯云的邮件服务,结果第二天就有阿里云客服打电话来问我需不需要提供什么帮助或者优惠之类的。腾讯云的测试邮件发送不出去,查了文档,说要联系客服开通才可以发送。阿里云的就没有尝试了。突然感觉自己是在舍近求远……


当然,还可以选择自建邮件服务器发送邮件。用postfix+dovecot搭建了一个,发送时直接提示:


后续:反转了,试了一下阿里云,直接验证完域名就能发送邮件,阿里云真香。

后续2: sendinblue和mailjet都拒绝了我的申请。大概是因为申请的时候没有提到,需要用他们的邮件服务进行用户推广,所以被认为是不符合业务内容的客户了……