内容提要
Cloudflare的邮件路由功能非常有用。作者一直在使用SendGrid发送邮件,并一直在寻找替代品。自托管的电子邮件选项包括Mail-in-a-box、Docker-mailserver、MailCow等。作者决定尝试使用Postal替代SendGrid。本文记录了Postal的安装和使用方法。首先需要准备一个域名和一个VPS。然后测试VPS是否允许通过25端口进行通信。接下来安装Postal,并使用Docker安装MariaDB。配置DNS记录后,就可以使用Postal发送和接收邮件。Postal还支持类似Cloudflare邮件路由的邮件接收功能。作者发现Postal完全可以替代SendGrid,并提供更多自由。
延伸解读
自建邮件服务器的关键前提
文章强调,成功自建Postal邮件服务器的两个硬性条件是:拥有一个允许25端口通信的VPS,以及正确配置rDNS。25端口是邮件传输的标准端口,许多VPS提供商默认封锁,需提前测试。rDNS(反向DNS)解析必须指向你的邮件域名,否则发出的邮件极易被标记为垃圾邮件。此外,准备一个子域名(如postal.example.com)用于管理,后续可绑定其他域名收发邮件。
Postal的安装与配置要点
安装Postal需要至少4GB内存和25GB存储,推荐Ubuntu 22.04。必须使用Docker,不支持Podman。数据库可用MariaDB,通过Docker或直接安装,需确保Postal对postal和postal-%数据库有全部权限。配置时需运行bootstrap生成配置文件,并设置数据库密码等。还需生成GitHub token以登录ghcr.io拉取镜像。初始化数据库、创建管理员用户后即可启动服务。
DNS记录与邮件送达率优化
配置DNS是确保邮件送达的关键步骤。需为postal.example.com创建A和AAAA记录指向服务器IP,并按照官方文档配置其他记录(如SPF、DKIM等)。配置文件中dns.mx_records里的域名都应CNAME到postal.example.com。发送测试邮件时,可利用mail-tester.com检查评分,争取满分。建议在设置中开启隐私模式,避免泄露SMTP客户端IP。
Postal作为SendGrid替代的实际体验
作者因SendGrid账户无法访问而转向Postal,使用一段时间后发现Postal能完全替代SendGrid,并提供更多自由。Postal不仅支持发送邮件,还具备类似Cloudflare邮件路由的接收功能,可将邮件转发到邮箱或HTTP端点。对于不需要完整收件箱、只需发送邮件的场景,Postal是一个灵活的自托管选择。
Q&A
如何安装Postal邮件服务器?
安装Postal需要准备一个域名和VPS,确保VPS允许25端口通信,然后按照特定命令安装Docker和MariaDB,最后运行bootstrap命令进行配置。
Postal与SendGrid相比有什么优势?
Postal可以完全替代SendGrid,并提供更多自由,支持自托管和邮件接收功能,类似于Cloudflare的邮件路由。
在安装Postal之前需要做哪些准备?
需要准备一个域名和一个VPS,确保VPS允许25端口通信,并且推荐使用至少4GB内存和25GB存储空间的Ubuntu 22.04系统。
如何测试VPS是否允许25端口通信?
可以使用telnet命令连接到其他服务器的25端口,或使用nc命令在VPS上监听25端口,确保外部服务器可以连接。
如何配置DNS记录以使用Postal?
需要为邮局域名创建A和AAAA记录,确保指向服务器IP,并在配置文件中将dns.mx_records设置为指向邮局域名的CNAME。
Postal支持哪些邮件接收功能?
Postal支持类似Cloudflare的邮件接收功能,可以将邮件转发到邮箱或HTTP端点。