在自托管的 Discourse 上通过 Namecheap Private Email (SMTP) 发送邮件时遇到问题

大家好,

我一直在尝试配置自托管 Discourse 安装的传出邮件,但到目前为止还没有成功。即使有 Namecheap 支持的参与,我们也无法使其正常工作。希望这里有人能指出我遗漏了什么。

设置

  • 托管:DigitalOcean 虚拟机,通过官方 Docker 方法 (/var/discourse) 安装 Discourse。

  • 域名:通过 Cloudflare 管理(网站的代理 A 记录,MX/邮件记录的 DNS 仅限)。

  • 邮件提供商:Namecheap 私人邮件

  • Discourse 版本:最新的 tests-passed 分支。

有效的部分

  • 我可以在我的 hello@domain.com 收件箱中毫无问题地接收邮件。

  • MX、SPF、DKIM 和 DMARC DNS 记录已设置并验证。

  • 通过 Gmail → hello@domain.com 的入站邮件工作正常。

失败的部分

  • 传出邮件(激活邮件、Discourse 的测试邮件)从未送达。

  • Namecheap 支持已确认我的凭据和设置是正确的,但无法解释为什么从服务器发送会失败。

当前 app.yml 配置

DISCOURSE_SMTP_ADDRESS: mail dot privateemail dot com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: hello at domain dot com
DISCOURSE_SMTP_PASSWORD: “PASSWORD”
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_DOMAIN: domain dot com
DISCOURSE_NOTIFICATION_EMAIL: hello at domain dot com DISCOURSE_SMTP_AUTHENTICATION: login

我也尝试了端口 465,配置如下:

DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_ENABLE_START_TLS: false
DISCOURSE_SMTP_SSL: true

已采取的调试步骤

  • 在 Cloudflare 中验证 DNS 记录是否正确(MX、SPF、DKIM、DMARC)。

  • 确认本地 UFW/iptables 没有阻止端口 587 和 465。

  • 尝试在 /etc/gai.conf 中强制首选 IPv4。

  • 使用 ncopenssl 进行测试 → 仍然超时。

  • 即使是 Namecheap 自家的说明(587 STARTTLS 或 465 SSL)也导致服务器发送失败。

问题

有人成功将 Namecheap 私人邮件 与 Discourse SMTP 结合使用吗?

  • DigitalOcean 虚拟机连接 mail.privateemail.com 的 587/465 端口是否存在已知问题?

  • 我应该放弃 Namecheap SMTP,改用事务性邮件服务(Postmark、Mailgun、SendGrid)吗?

  • 此提供商是否需要特殊的 app.yml 标志?

感谢您的任何指导。我在这个设置上遇到了瓶颈。