邮件回复与通知不兼容

我仔细阅读了此链接 Email delivery configuration checklist 及后续的邮件指南。

我研究了此链接 https://meta.discourse.org/t/how-to-setup-reply-by-email-address-now-that-it-must-be-different-from-the-notification-email/126767,以及这个 https://meta.discourse.org/t/notification-email-cannot-be-the-same-as-reply-by-email/28840。

我在论坛上使用的所有地址都可以通过邮件客户端(如 Thunderbird 或 Claws Mail)发送或接收邮件。

有四个不同的地址,只有前三个与此主题相关:

  • app.yml 中的管理地址:admin@
  • app.yml 中的通知地址:forum@
  • reply-to 地址:reply@
  • 以及邮件发布地址:questions@
  1. 通过论坛邮件列表状态收到的通知发送正常。并且 admin/email/server-settings 页面上的发送测试也通过了。

  2. 如果我设置了邮件回复功能,该功能可以正常运行,但通知功能却停止工作了。
    先前的发送测试会失败,状态显示为“501 5.5.4 You are not allowed to send from this address.”(您不允许从该地址发送。)

  3. 如果我禁用邮件回复功能,测试会再次正常通过。

谁能向我解释为什么会出现这个错误,以及如何正确地同时设置通知和“邮件回复”功能?

该消息来自您的邮件发送服务。它很清楚。

您需要从您的 SMTP 服务器可以使用的电子邮件地址发送。这就像它被设置为从 example.com 发送,而您现在正从 forum.example.com 发送。

1 个赞

那么为什么在一种情况下发送测试是正常的,而当我设置“通过电子邮件回复”时却是失败的呢?我需要说明的是,我没有更改通知的任何配置。

Discourse 在准备邮件时发生了什么?

问题确实出在 Discourse。

通过优化日志设置,我看到所发帖文确实是通过正确的地址进行身份验证的:

2026-02-25T12:54:24Z TRACE Data store
iteration operation (store.data-iterate) elapsed = 0ms
<3.14, remotePort = 47104, accountName =
“forum.cagut@domain.tld”, accountId = 31

但是它变成了

2026-02-25T12:54:24Z ^\[\[35;1mTRACE ^\[\[37;1mRaw SMTP output sent
(smtp.raw-output) listenerId = “submissions”, localPort = 465, remoteIp
= 51.178.53.14, >
<53.14, remotePort = 47104, size = 73,
contents = “MAIL
FROM:<reply.cagut+verp-8bf40c695b1f612e555cf25f3c14c9b8@domain.tld>\\r\\n”

邮件服务器对这种地址格式一无所知。