邮件转发最终进入原始主题

我们的论坛服务于一个庞大的、不同群体组成的社区,这些群体之间不经常互动,但有时需要共享信息。
问题是,如果有人通过电子邮件转发一封邮件,从一个类别转发到另一个类别,那么邮件就会出现在原始主题中,而不是转发邮件所在的类别。

详细信息:

  • 运行的是 2.9.0.beta1
  • 我们的实例启用了电子邮件进入和邮件回复功能
  • 每个类别都分配了一个电子邮件,格式为 discourse+CATEGORY@...

重现步骤:

  • 收到类别 A 中新帖子的电子邮件通知
  • 使用类别 B 的电子邮件 discourse+CAT-B@... 将收到的电子邮件转发到类别 B
  • 转发的邮件出现在类别 A 的原始主题中

问题:如何确保转发的邮件出现在正确的类别 B 中?(无需修改任何邮件头!)

2 个赞

您的意思是它最终会出现在 A 类别的原始主题中?

我再次在什么都不知道的情况下回答,很快就会有人来告诉我事情的真相——但据我所知,它应该会那样,回复也不会变成新主题,只是更改电子邮件。

好的,谢谢——已修复!

澄清一下:此人不是通过“回复至”(reply-to)回复邮件,而是手动将“收件人”(to:)地址设置为 discourse+cat-B@ 邮箱来转发邮件。

我似乎无法重现此问题。到目前为止,我的步骤如下:

  • 设置 CategoryA 和 CategoryB,并为它们分配邮件地址(categorya@[MyTestSite] 和 categoryb@[MyTestSite])
  • 将 test_user 设置为这两个类别的“Watching”
  • email time window mins 设置为 1 分钟(可选,但可以加快速度)
  • 管理员在 CategoryA 中发布主题
  • Test_user 收到 CategoryA 中新主题的通知邮件,并将其连同消息转发到 CategoryB
  • 在 CategoryB 中创建新主题(标题非常丑陋 :slightly_smiling_face: - Fwd: [JammyDodger's Test Site] [categorya] Topic for Category A),但只包含添加的消息,而不包含预期的转发信息)

我似乎无法复制将邮件转发到某个类别,结果却成为现有主题的回复的问题?有什么我可以尝试的其他方法吗?

2 个赞

谢谢你的尝试!

这与电子邮件客户端有关吗?我曾“责怪”Discourse根据“in-reply-to”字段而不是“to”字段对消息进行分组。

哈,你对那个设置有什么看法?

image

我不确定?我测试时使用的是Gmail,这有用吗?

我也将其设为默认值。:+1:

让我想起了 A mail reply may end up in the wrong category

4 个赞

Nice spot @Moin :+1:

I’ve just tried repro-ing this as well (a key difference seemed to be pressing ‘Reply’ and then manually changing the To address, rather than Forwarding), but mine ended up as a new topic in Category B again. Perhaps this does make it client specific? @artur Which are you using?

1 个赞

我刚用我的Gmail试了一下,但邮件仍然被归到了原始类别。
奇怪——我很惊讶它对你有效!
你能检查一下转发邮件的邮件头吗?
我看到例如“References”包含原始主题ID——这会不会比“to:”字段优先级更高?

谢谢链接!
情况似乎类似,只是在我的例子中,这是关于转发邮件而不是回复。因此,我仍然不理解这种行为。

我一直在尝试回复,然后又想出别的方法来尝试。:slight_smile: 但到目前为止,我还没有成功复制您的问题。一些可能相关的事情——我的测试站点设置的是 mail-receiver,而不是 POP3,您是在转发第一个帖子/OP 还是回复?

我正在使用 POP3 并转发第一封帖子。

谢谢你的帮助!

1 个赞

您好 @JammyDodger,我刚意识到我的大多数类别都被历史性地设置为“类别镜像邮件列表”。您能否在启用此选项时尝试重现此问题?我刚在我的测试实例上禁用了它,似乎解决了奇怪的行为。

1 个赞

我已经启用了“Category mirrors a mailing list”来测试 Category A 和 Category B,现在可以重现该问题了。 :partying_face:

  • 设置 CategoryA 和 CategoryB,并为它们分配邮件地址(categorya@[MyTestSite] 和 categoryb@[MyTestSite])
  • 为每个类别设置 Category mirrors a mailing list
  • 将 test_user 设置为两个类别的 Watching
  • email time window mins 设置为 1 分钟(可选,但可以加快速度)
  • 管理员向 CategoryA 发布主题
  • Test_user 收到 CategoryA 中新主题的通知邮件,并将其转发给 CategoryB
  • 转发显示为对 Category A 中原始主题的回复

我对邮件列表不太了解,这会是一个 bug 还是设置冲突?

@dachary,这听起来也能帮助你解决问题吗?

谢谢检查!

嗯,鉴于我重新阅读了邮件列表镜像的功能,我想这并不是一个 bug,而是有意为之:

  • 通常 find_related_post_with_key 在站点设置中是启用的。不建议为整个站点禁用它,因为它允许基于电子邮件地址的用户冒充。发送到邮件列表的入站电子邮件始终使用邮件的 Message-ID 来查找相关帖子,并忽略该站点设置的值。

我主要保留该选项是因为另一点:

  • 通常 Discourse 希望入站电子邮件包含格式化为 Markdown 的文本。邮件列表用户通常不知道这个要求,因此 Discourse 不会解释纯文本电子邮件中的任何 Markdown(除了用三个反引号括起来的代码块)或 HTML,而是以原始格式将其发布。

这对于那些不了解 markdown 的人来说是说得通的 :slight_smile:

3 个赞

很荣幸。 :slight_smile: 我已将此主题移至 Support :+1:

现在您对设置如何协同工作有了更多的了解,您能大致了解您希望它如何工作吗?

2 个赞

我认为,对于纯邮件列表镜像站点来说,它能正确完成工作。
我将看看用户如何处理 Markdown - 他们肯定不知道这是预期的!

在我禁用邮件列表镜像时出现的一个问题是,对于代表某些用户发送的自动生成消息,会出现 Discourse::InvalidAccess 错误。拒绝消息显示:

您的帐户无权在该类别中发布新主题。

尽管之前同一用户也能正常工作。所以我想镜像选项禁用了某种保护机制。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.