内容提要
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。