我认为点击“邮件类型”字段(例如 user_watching_first_post)旨在显示从预期收件人处收到的退信详情。
但在我的自托管网站上,我收到了上述错误消息。有什么方法可以修复吗?
谢谢。
我认为点击“邮件类型”字段(例如 user_watching_first_post)旨在显示从预期收件人处收到的退信详情。
但在我的自托管网站上,我收到了上述错误消息。有什么方法可以修复吗?
谢谢。
没错。我刚刚在我的托管 Discourse 站点上检查了这一点,一切运行正常。如果您的站点运行的是最新版本的 Discourse,我想知道问题是否与您的邮件服务器处理退信转发的机制有关。
谢谢。对于发件,我使用的是 Mailgun。我想我使用了 Discourse 推荐的设置。
对于收件,我使用的是这个 https://meta.discourse.org/t/straightforward-direct-delivery-incoming-mail/49487,但自安装以来我从未更新过它——这会不会是问题所在?既然 Discourse 使用的是 ./launcher rebuild app,那么邮件接收器是否应该是 ./launcher rebuild mail-receiver?
是的,这就是升级方法。距离上次更新已经有一段时间了,我认为,一个不错的起点就是升级它和 Discourse。
我已升级两者,但错误依旧,包括(我认为)升级后收到的邮件。还有其他建议吗?
同样的问题。自托管,已更新至最新版本。退信已按推荐方式处理。更改为正确的退信处理之前生成的链接仍正常工作。
是的,Discourse 很可能没有从 Mailgun 接收到该消息。我不清楚 Webhooks 的具体工作原理,但怀疑它只是告知 Discourse 发生了临时性或永久性故障,而并未发送退信消息。
有没有办法让这个 Discourse 功能与 Mailgun 配合工作?
至少应该能够显示错误代码和错误信息:
同时保留 SMTP 错误代码和 SMTP 错误消息
“code”: 550,
“address”: “'baz@example.com”,
“error”: “Message was not accepted – invalid mailbox. Local mailbox 'baz@example.com is unavailable: user not found”
https://documentation.mailgun.com/en/latest/api-bounces.html#examples
如果不行,那至少我们需要一个合理的错误消息,来解释为什么该链接无法工作 ![]()
这方面有进展吗?如果有的话,我将非常感激 ![]()
我使用的是 Digital Ocean 和 Mailgun(即主要的推荐服务),所以可以想象遇到这个问题的不仅仅是我。
经过我自己的测试,似乎在很多情况下,邮件接收者根本没有收到退信。(我只发现了一个连接尝试,但很快就丢失了)。我没有看到 Return-Path 标头被设置(它应该被设置吗?),这让我认为大多数时候它们根本没有被发送回来。
这里也仍然存在问题。尽管我之前说过,但现在看来这些链接都不起作用了,回到了站点启动时的情况。最初这似乎只影响了在我们正确处理弹回邮件之前(https://meta.discourse.org/t/handling-bouncing-e-mails/45343)的弹回邮件。
我刚注意到错误日志中有很多类似的警告:
无法处理电子邮件:Email::Receiver::AutoGeneratedEmailError
收到:来自 ...
用于 <bounce+f7e463.5f70e9-...@forum.example.com>; ...
主题:您的邮件无法送达
也许这就是为什么 Discourse 没有退回邮件的任何详细信息的原因。
我在日志中没有看到这些错误,但问题仍然存在。当我在“Bounced email list”中点击某个条目的“Email Type”值时,我会收到“An error occurred: Discourse::NotFound”。
它已经被选中了。我往日志里回溯了一下,虽然我看到了一些偶尔的邮件相关信息,但我没有看到你提到的那些。
我在 Mailgun 也遇到了同样的问题。主机不同,所以不是那个问题!
我想知道 Mailgun 的 VERP 设置配置说明是否存在问题:
这个问题已经存在一段时间了,但直到我试图调查为什么目前收到如此多的退信时才开始出现问题。
问题似乎是“邮件类型”列中没有链接,并且:information_source:图标(红箭头)后面也没有内容:
当我点击这些时,我会得到这个:
查看页面代码,HTML中的锚点标签似乎完全缺少 href:
我已经为 Mailgun 配置了 VERP,而且除此之外它似乎运行良好。
当 Discourse 未处理退信响应时,这就是预期的行为。如果 Discourse 收到退信,该功能就能正常工作,否则它将对所有退信显示此响应。
您能否根据 Configure VERP to handle bouncing e-mails 仔细检查并运行测试?
在这种情况下,更好的消息会更好。
您是不是想说,如果 Discourse 仅通过 Mailgun 网页钩子得知弹回,那么弹回的详细信息永远不会发送到 Discourse。是这样吗?
如果正确——是否有办法将这些详细信息发送到 Discourse 并与 Discourse 收到的弹回信息记录和显示在同一位置?我认为 Mailgun API 可以做到这一点 ("Discourse::NotFound" error when click "Email Type" field on admin/email/bounced - #8 by Jonathan5)。
在什么情况下 Discourse 会处理弹回而不是外部电子邮件服务?(我知道 Discourse 可以弹回/拒绝电子邮件,但我的意思是处理从预期电子邮件收件人那里收到的弹回消息。)
同意。如果某样东西实际上没有坏,它就不应该看起来坏了。Discourse 当然可以提供更令人放心的信息。