构建属于你的SendGrid:Postal SMTP服务器

构建属于你的SendGrid:Postal SMTP服务器

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

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端点。

🏷️

标签

➡️

继续阅读