分享 用 Postal 搭建邮件服务器

Rei · 2022年08月30日 · 最后由 oyaxira 回复于 2022年09月14日 · 780 次阅读
本帖已被管理员设置为精华贴

原文发布于 https://geeknote.net/Rei/posts/1478


最近我用 Postal 搭建了一个邮件服务器,体验比想象中更好,迫不及待分享一下经验。

为什么要搭建邮件服务器

发邮件是 Web 服务常见的需求,例如账号验证,密码重置等等。一般情况下推荐使用第三方的邮件服务,因为自建邮件服务器声誉不足容易被判定为垃圾邮件。

不过第三方服务也存在一些问题:

  • 价格昂贵。如果只是发送事务性邮件那么支出不高,而要做邮件列表等发送量大的功能时价格就不能忽视了。
  • 共享声誉。第三方服务的邮件服务器是在一个 IP 池子里,送达率会被其他用户影响。

如果要做邮件发送量大的应用,并且希望自己维护邮件服务器的声誉,自建邮件服务器就有必要了。

Postal 简介

Postal 是一个全功能、开源的邮件服务器。它包括以下功能:

  • 支持多个组织、服务器和授权用户。
  • 支持发送和接收邮件。
  • 支持 webhook。
  • 完整的发送日志。
  • 垃圾邮件过滤。
  • 更多……

可以说第三方邮件发送服务提供的它几乎都提供了,就像自己托管的 Mailgun,Postmark。

对我来说 Postal 还有一个优点,那就是它是用 Ruby & Rails 开发的,要 hack 比较容易。

安装须知

Postal 有很详细的安装文档,我就不多做叙述。

要注意的是,搭建邮件服务器的前提是要找一个允许搭建邮件服务器的服务器提供商。使用量最大的 AWS、GCloud、阿里云等都不允许搭建邮件服务器。较小一点的 Linode、DigitalOcean 限制新用户搭建,但可以通过工单申请开通。所以安装之前,先查一下自己服务器提供商是否允许搭建邮件服务器(没有屏蔽 25 端口出站)。

第二个可能遇到的问题是 IP,有的 IP 曾经被垃圾邮件商利用过,已经进入黑名单,可能会被别的邮件服务商直接拒收。因此也不能选择对邮件发送毫无限制的服务器提供商。

如果能解决上面两个问题,按照官方文档就能顺利搭建邮件服务器了。

作为参考,我的邮件服务器目前放在 Linode(推广链接)。

使用心得

测试垃圾邮件匹配度

安装完成后先用 Mail Tester 测试垃圾邮件匹配度。

在 Mail Server -> Message -> Send Message 页面可以发送测试邮件。

尽可能解决 Mail Tester 列出的问题。

区分组织和服务器

Postal 支持多个组织和下属多个服务器,利用这个特性可以区分多个应用和多个环境:

设置入站路由

入站路由可以用来开发邮件评论回复等功能,也可以用来转发客服邮件。

设置发送限制

每个 mail server 可以设置单独的发送限制。根据应用的发送量设置一个限制,避免程序错误或者被机器滥用往外发送大量垃圾邮件,影响邮件服务器声誉。

总结

搭建邮件服务器是个开始,能否送达邮件才是关键。目前我应用的发送量很小,没有什么代表性,希望以后有机会能分享更多的数据和经验。

总的来说,Postal 强大的功能超出了我的预期,非常推荐用来搭建邮件服务器。

国内云服务厂商会封端口,国外又太慢

zhongsheng 回复

网络延迟对 email 没那么敏感,中间要经历转发、验证和过滤,这是 postmark 的送达时间监控:

3 楼 已删除
4 楼 已删除

国内应用都很少用邮件的

hellonunam 回复

Web 网页如何通知用户?借助邮件还是一种靠谱的渠道

awking 回复

短信不好吗,大部分客户也不看邮件呀

xiaoronglv 将本帖设为了精华贴。 09月02日 13:20
hellonunam 回复

手机号涉及个人隐私;换号成本高;不方便设置提醒规则;文本内容少。

hellonunam 回复

企业用户还是用邮件的,手机号只能做个简单的通知,而且很多平台发个短信都要申请审核一堆东西

之前也研究过国内邮件商业化的路子 其实我觉得还不错的

原来是可以测试垃圾邮件匹配度的,我以为这个只能靠自己肉体感知😂

原来还真有 ror 写的邮件服务器.. 国内现在其实群晖自带的 mail server 个人家用能直接用.

需要 登录 后方可回复, 如果你还没有账号请 注册新账号