暂存用户收到 user_linked 邮件

我注意到,已暂存的用户会收到 user_linked 电子邮件通知。在我的使用场景中,我使用邮件列表模式将邮件归档给外部方。当有人从另一个主题链接到由外部(已暂存)用户发布的邮件/帖子时,该已暂存用户将收到一封包含帖子内容的电子邮件通知!这显然不是我想要的,甚至可能带来危害!

以下消息表明这是一个错误:

如果这不是一个错误,是否有办法禁用此行为?

2 个赞

嗯。@tshenry,我们能复现这个问题吗?

1 个赞

通过在被试用户的偏好设置页面中将“当有人引用我、回复我的帖子、@提及我的用户名或邀请我加入话题时发送邮件给我”设置为“从不”,似乎可以阻止这些邮件的发送。

Discourse 是否可以为所有新的被试用户账户默认将此设置为“从不”?或者至少使其可配置。

请注意,这是一个需要登录的私人论坛,但分类并非私有,因为无需如此。来源:Private category comments exposed via email - #13 by gerhard

我不确定是否应该阻止向处于暂挂状态的用户发送通知邮件,当论坛要求登录时(甚至可能是仅限邀请或需要用户批准)。我对此举棋不定。当论坛是公开的时,通知确实是有意义的。

不过,针对私人论坛的使用场景,能够禁用此行为将非常有用。

或者,我可以将所有分类的权限修改为需要信任等级 1 来解决此问题。但这样会在所有分类名称旁边显示一个挂锁图标。也许可以通过某种方式将其隐藏?

是的,您可以使用 CSS 隐藏锁图标:

.d-icon-lock {
    display: none;
}
4 个赞

由于我的论坛用户数量固定,我正在考虑禁用所有新创建用户账户(包括预创建用户账户)的通知邮件。我注意到,将“默认邮件级别”设置为“从不”时,可以选择仅影响新用户,因此现有用户的邮件通知设置不会受到影响。

另请参阅:Discourse disable emails when someone replies etc - #2 by pfaffman

这是一个基本的复现步骤:

  1. 站点需要登录,分类不是私密的
  2. 向一个尚未关联账户的邮箱发送私信,以创建一个临时用户
  3. 让该临时用户通过电子邮件回复该私信
  4. 在论坛的另一个主题中引用该临时用户通过电子邮件回复的私信内容
  5. 在论坛的另一个主题中链接到该临时用户通过电子邮件回复的私信内容
  6. 没有向该临时用户发送 user_linked 电子邮件通知 存在延迟,但该临时用户最终确实收到了两封通知邮件。

@codinghorror 有什么想法吗?

3 个赞

确认为 bug。我们能否安排明天修复并回退,除非难度极大 @eviltrout?我认为分阶段发布的用户根本不应该遇到这个问题。

3 个赞

您描述的情景与我遇到的情况不同,但问题的根本原因可能相同:

  1. 站点要求登录,但分类不是私有的
  2. 为分类 A 设置自定义接收邮件地址,并允许匿名用户(无账户)发送邮件(此外,我还设置了分类镜像邮件列表
  3. 用户 X(无账户)向该邮箱地址发送邮件
    • 系统创建一个临时用户
    • 在分类 A 中创建一个新主题
  4. 已注册用户 Y 在分类 B 中创建一个新主题,并链接到分类 A 中的主题
  5. 用户 X 收到一条 user_linked 邮件通知

我理解这是面向公开 Discourse(无需登录)的期望行为。然而,对于私有 Discourse 来说,这可能会带来负面影响。或许可以让该行为根据“需要登录”的设置来决定?

感谢您对此问题的关注!

1 个赞

已通过以下方式修复:

并已向后移植到 稳定版FIX: Staged users getting user_linked and user_quoted emails · discourse/discourse@6b20d52 · GitHub

6 个赞

感谢你的报告 @brechtm —— 问题现已修复。对此深表歉意。

4 个赞

我这边已经核实过,问题确实已经解决了。谢谢!不必道歉 :slight_smile:

5 个赞