家庭数据中心系列 使用cloudflare+resend+gmail打造免费的个人级企业邮箱

前言

有了自己的域名之后,我就一直想要自己域名后缀的邮箱,开始还花了巨大精力自己用家庭宽带自己架设邮件服务器来着,不过后来发现只有一些国内的免费邮箱能收到,其他的要不根本收不到,要不就在垃圾箱里,所以就放弃了。

不过在用了cloudflare之后,使用其电子邮件路由功能,成功解决了自己域名后缀邮箱的收邮件功能,但是因为使用gmail代发基本没用,所以对发邮件又放弃了。

这次无意之间,疑似有免费的企业邮箱可以白嫖的消息传来,让我兴奋了一阵,可是看了一圈下来,google workspace的基础教育版(免费的)很难申请,要提供一堆乱七八糟的证明材料,而其他企业邮箱,最便宜的都要0.99刀/月。讲道理贵还是不贵的,只不过我平时很少发邮件,只是想偶尔装逼的时候用一下,给钱又不用不是我的风格,太浪费了,所以又开始寻找,还真找到了一个适合我这种需求的免费的个人级企业邮箱解决方案:resend。

最终方案是cloudflare+resend+gmail(我的cf电子邮件路由的目标邮箱)。

cloudflare电子邮件路由

这个主要是解决用自己域名收邮件的问题,详细配置步骤请参考我另一篇文章:家庭数据中心系列 使用cloudflare打造使用你自己域名后缀的邮箱小号

resend

这个主要是解决用自己域名发邮件的问题。

简介

resend是一个专业且高效的电子邮件发送平台,你可以认为它就是一个专业的发送邮件代理,只要是通过它发出的邮件都是可信的,可以直接进入各大邮件服务提供商的收件箱里(简单来说,resend为发出的邮件做担保,复杂点说,resend提供DKIM的验证),这个和自定义域名的企业邮箱其实是一个道理(不过企业邮箱要给钱,我却没有钱~)。

最关键的是,resend对于个人账号有发送邮件的免费额度:
image.png

每天100封、每月3000封,这个对于个人的正常邮件来说绰绰有余了,况且我只是想用来偶尔装下逼使用~~,所以这就是我苦寻已久的装逼利器啊。

注册resned账号

注册一个resend账户(https://resend.com/signup):

image.png

image.png

添加并验证你的域名

image.png

image.png

根据下图红框中的提示在自己的域名供应商(我这里就是cf)里添加对应的记录,然后验证域名:
image.png

然后分为2种情况:
1、如果你的域名本来没有配置任何邮箱相关的设置

那么直接按照上面图中红框的要求直接添加4条记录即可,验证成功STATUS变为绿色的Verified,如下图:
image.png

2、如果你的域名本来就配置了邮件相关的的设置

比如启用了cloudflare的电子邮件功能,那么有如下注意事项:
1、上图中MX记录的优先级是10,这是resend要求的,如果你的域名供应商里不止一条MX记录,比如cloudflare的电子邮件路由自动填写的MX记录:

image.png

需要确保用于电子路由的MX记录的优先级高于resend用于验证的MX记录的优先级(本例中是10)。
2、如果本身就使用了clouflare电子邮件路由功能,除了已经有多条MX记录以外,还会有TXT格式的spf记录:

TXT example.com "v=spf1 include:_spf.mx.cloudflare.net ~all"

如果这个时候你直接按照resend的要求添加TXT记录:

TXT send v=spf1 include:xxx.com ~all

你会发现通不过校验,这是因为spf只能有一条,如果以前的存在,后面添加的是无效的,所以处理方式是在原有的spf记录里面把resend的”include:xxx.com”添加在 “~all”即可,而不是再新增一条spf记录。
3、也可以先停用或删除已有的spf和MX记录(比如先停止cloudlfare的电子路由功能),待验证完resend后再按照前2条注意事项的方式改过来(我就是这么搞了,感觉不到1分钟就验证通过了)。

获取resend API和smtp服务器地址

image.png

image.png

image.png

获取并保存smtp服务器地址,这是以后我们能用自己域名发送邮件的关键:
image.png

注:邮件相关的知识点很多,一般人其实不用关注细节,但是如果你不是一般人且又对细节有兴趣,可以参考我以前的一篇花费了大量时间和精力最后发现并没毛用的文章:docker系列 搭建基于poste.io的邮件服务器

发送邮件

使用resend之后其实没必要使用gmail来代发了,就算使用gmail代发也只是把gmail当一个普通的发送邮件客户端,只是我也很久没有使用邮件客户端了,懒得折腾了,就用gmail来演示吧:

image.png

image.png

image.png

验证添加的邮件地址:
image.png

在邮箱中点击链接进行验证:
image.png

image.png

image.png

测试发送邮件,发件人选择刚刚添加的自己的域名后缀邮箱:
image.png

给我的qq邮箱发送邮件,qq邮箱还是很有代表性的,只要qq邮箱能进收件箱,其他的国内邮箱基本不在话下了:
image.png

成功进入收件箱:
image.png

不过嘛,不要高兴太早:
image.png

要显示代发信息,还有下方那红色的鬼提醒,逼格太低了。。我换个邮箱试试,比如gmail邮箱,没提醒:

image.png

icloud.com邮箱没提醒:
image.png

image.png

看来是地域歧视啊,国内邮箱是不是都有这个警告呢?我试试163邮箱:
image.png

这个也有提示,但是没警告。。看来是看不同邮件服务提供商的安全策略来定的,国内不认国外代发业务也正常,但是这个代发提醒真的颇降低逼格啊,不过也只有忍了。至少发国外邮箱逼格很高。

关于代发问题的进一步研究

本来都在写总结了,但是有点不爽,还是想进一步研究下代发问题。其实代发问题本身的原因很简单:就是DKIM(域名密钥识别邮件)的问题,在我以前的文章(docker系列 搭建基于poste.io的邮件服务器)中也提到了DKIM的概念以及如何在邮件服务器以及DNS中设置,这里就不多说了,大家有兴趣也可以在网上搜索下。

简单来说,就是收到邮件的邮件供应商会通过DNS查询发件域名的拥有者放在DKIM记录里的公钥,并和收到的邮件中DKIM标头中使用私钥加密的一段内容(数字签名)进行比对(验证数字签名),如果验证能通过就证明邮件不是伪造的。


其实吧,不管是哪种代发,邮件源代码里都看得出来:
gmail里查看邮件原文:

image.png

icloud里查看邮件原文,而且看到的不是gmail里显示的”email.amazonses.com”,而是”send.tangwudi.com”?
image.png

qq邮箱里直接就在正文看得到,
image.png

为什么会有这两种显示结果呢?我们以icloud.com收到的邮件原文内容来分析:
image.png


DKIM签名中有很多参数,这里需要的是s和d,不过其他参数这里也贴一下,大家有兴趣了解一下:

- v=1表示DKIM版本。
- a=rsa-sha256表示签名算法。
- d=example.com表示发送域。
- s=default表示用于签名的选择器。  
- c=relaxed/relaxed表示规范化算法。 
- h=from:to:subject:date:message-id表示被签名的头部字段。 
- [email protected]表示签名身份。
- bh=后面的部分是邮件正文的哈希值。
- b=后面的部分是签名本身。

当icloud.com收到我发送的这封邮件的时候,会通过邮件原文发现2个DKIM签名,为了证明这封邮件的真实性,icloud会对2条DKIM签名都进行验证:通过s和d后面的参数进行DNS查询,以第一条DKIM签名为例,会构成一个DNS查询:resend._domainkey.tangwudi.com,然后会向tangwudi.com的域名托管商(我这里是cloudflare)进行查询,resend._domainkey,还记得这个记录吗?就是resend在验证tangwudi.com域名时添加的记录之一,这个就是DKIM记录,在这个记录中存放有resend提前生成的公钥,查询:resend._domainkey的时候就能拿到这个公钥:
image.png

然后用公钥对第一条DKIM中的签名(b=后面的字符串)进行验证,如果验证能通过,则认为该邮件的确是从tangwudi.com发出来的;同理测试第2条DKIM,如果也验证通过,则也能确认的确是从amazonses.com发出来的。

对于icloud.com(gmail和hotmail)来说,因为是amazonses.com最终发出来的,如果存在某种协议或者互信的政策,就会直接放行邮件,且不会做任何提示:
image.png

而如果是国内邮箱,虽然也会放行,但是会把邮件返回的具体路径显示出来,就是我们前面看到的代发提示的邮箱地址,其实这个就是回邮件时候使用的地址:
image.png

这个感觉就像是私有IP地址NAT后的公网IP和端口,和网上的web服务器通信的时候,web服务器回包就是送到这个公网IP和端口上,搁在这个场景就是直接用这个地址回邮件,然后resend根据对应关系(类似NAT中的session表)将邮件回复到[email protected]中,完成了邮件的发和收。

至于为什么gmail会显示”email.amazonses.com”,而其他的显示”send.tangwudi.com”,那就猜不到了~。

这么分析一圈看来,还是resend在国内影响不够啊,不过,我之前都不知道resend,影响不够也正常。。。

总结

使用resend代发和使用gmail本身的代发相比如何呢?以前我试过gmail的代发,感觉成功率很低,觉得不实用,就没用过了,刚才想想觉得不对,好好看了下设置gmail代发的过程,发现就真的只是简单的代发,根本不涉及任何DNS记录的验证问题,所以应该是免费gmail用户的代发没法像resend代发的邮件一样通过自己本身域名(本文中的tangwudi.com)的DKIM验证,那自然直接就被丢弃或者进垃圾邮件箱了。

所以目前看来,cloudflare+resend+gmai是目前最实惠的免费的个人级企业邮箱解决方案了:cloudflare电子邮件路由+gmai实现收,cloudflare+resend实现发(虽然我用了gmail的代发,但是只是偷懒把gmail作为一个邮件发送客户端而已,使用resend的smtp服务器地址,随便用一个邮件客户端都能发邮件),虽然国内邮箱收件有提醒,但是至少能进收件箱了~~,这个比之前直接进垃圾箱或者垃圾箱都进不了可好多了。

不过嘛,土豪看不上这个,真正的企业邮箱发的邮件国内邮箱应该连提醒都没有吧,那个才是有逼格,不过企业邮箱我看了一圈,就没免费的,最便宜0.99刀/月(盗张图,如有侵权请通知我删除):
image.png

我没钱,只能眼馋了,哪位兄弟去尝试一下0.99美金一个月的NameCheap企业邮箱,真不贵!

另:经一个网友介绍,又发现一个类似的:brevo,和resend差不多,每天却有300封的免费额度,如果觉得resend每天100封的额度不够的朋友可以去尝试下这个。配置也不难,大概配置、验证的步骤和resend差不多,我就不重复写了,网上教程也有,而且还支持营销计划什么的,功能很多,resend主打的就是一个简洁,各有优势吧,只是代发邮件显示的地址是这个:”[email protected]”,看起来有点怪异,不过也能进qq邮件的收件箱,其他都一样,大家根据自己的需求进行选择吧。

博客内容均系原创,转载请注明出处!更多博客文章,可以移步至网站地图了解。博客的RSS地址为:https://blog.tangwudi.com/feed,欢迎订阅;如有需要,可以加入Telegram群一起讨论问题。

评论

  1. skip2
    Windows Chrome 126.0.0.0
    7 月前
    2024-6-22 15:52:12

    我用 resend 的邮件服务作为我的博客评论系统邮件部分的支持了。

    • 博主
      skip2
      Macintosh Chrome 126.0.0.0
      7 月前
      2024-6-22 15:54:58

      对个人博客来说额度完全足够用了。

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
       

本站已禁用鼠标右键和各种快捷键,代码块内容可以直接在右上角点击复制按钮进行复制

zh_CN