使用Postal邮件投递平台的经验分享

使用Postal邮件投递平台的经验分享

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

内容提要

Postal是一个可以替代SendGrid的工具,但使用过程中遇到了一些问题。其中一个问题是端口25的限制,可以通过使用Socks代理或者在Postal服务器上设置备用端口来解决。另一个问题是SMTP服务和Web服务共享同一个域名,需要将其拆分为两个域名。此外,还需要注意PTR记录和证书的配置。总之,自托管Postal是一个值得尝试的解决方案。

🔎

延伸解读

端口25限制的应对思路

许多VPS提供商限制出站25端口,导致Postal无法直接投递邮件。文章提到两种绕过方法:一是通过Socks代理转发25端口流量,但代理服务器也可能限制25端口;二是在Postal服务器上用iptables将备用端口(如587、2525)重定向到25端口。这为受限制环境提供了一种可行的变通方案,但需注意代理的可用性。

拆分SMTP与Web域名的必要性

Postal默认让SMTP和Web服务共享同一域名,这导致无法使用Cloudflare代理加速Web面板。通过修改配置文件,将smtp_hostname设为独立域名(如smtp.example.com),并配置对应的DNS A记录和PTR记录,可以解决这一问题。拆分后,Web服务可独立使用CDN,而SMTP服务则专注于邮件收发。

PTR记录与多IP场景的配置技巧

PTR记录需与主机名保持一致,尤其在STARTTLS协商时,服务器声明的helo_hostname会与PTR记录进行验证。当Postal拥有多个出站IP时,默认的smtp_hostname可能无法匹配所有IP的PTR记录。文章分享了一个临时方案:先将smtp_hostname改为helo.example.com并重启SMTP服务,再改回原值并重启Web服务,使多个A记录指向各出站IP以通过验证。

证书选择与客户端验证的灵活性

Postal支持在25端口启用STARTTLS,需在配置中开启tls_enabled并放置证书文件。由于SMTP客户端对证书的验证逻辑缺乏统一标准,有的客户端要求主机名匹配,有的则检查MX记录或连接域名。因此,建议使用包含邮件系统所有域名的多域名证书或通配符证书,以兼容不同客户端的验证要求。

❓

Q&A

Postal是什么?

Postal是一个可以替代SendGrid的邮件投递工具。

使用Postal时遇到的主要问题是什么?

主要问题包括端口25的限制和SMTP服务与Web服务共享同一域名。

如何解决端口25的限制问题?

可以通过使用Socks代理或在Postal服务器上设置备用端口来解决。

为什么需要为SMTP服务和Web服务拆分域名?

因为它们共享同一域名,无法使用Cloudflare的代理功能来加速Web服务。

PTR记录在Postal配置中有什么重要性?

PTR记录需要与主机名一致,以确保SMTP服务器在STARTTLS协商中通过验证。

使用Postal时如何处理证书问题?

建议使用多域名证书或通配符证书,并在配置文件中启用TLS。

➡️

继续阅读