已暂停用户仍收到论坛群组邮件

我论坛上一位被停用的用户报告称,在其账户被停用后,仍收到了论坛通知邮件,特别是针对他在账户停用前已订阅的群组。

据他所说情况属实,因为 Discourse 显示他“最后收到邮件”的时间是 3 小时前,而他的账户早在数天前就被停用了。

难道不应该在账户被停用后,完全停止向该用户发送任何自动化的论坛邮件(包括其曾加入的群组相关邮件)吗?

我绝对不希望看到被停用的成员继续收到来自论坛的任何邮件,除非是由管理员手动发送。

此外,我原以为成员无法@(提及)账户已被停用的用户,但看来我们的一位成员仍然成功@了该被停用的账户。

6 个赞

抱歉,您指的是哪些邮件?能否更具体一些,并提供这些邮件的标题和摘录?

2 个赞

这些邮件是发送给群组成员的私信(PM),例如当有人向 @群名称 发送私信时,该群组包含多名成员,且其中某位成员已设置接收私信的邮件通知。该被禁用的成员在账号被禁用前曾是多个群组的成员,并且在被禁用后仍持续收到来自其中一个群组的私信回复邮件。

因此,这些邮件的主题格式为:“[论坛名称] [私信] 邮件主题”

我的理解是,回复发送给群组的私信,其机制类似于“全部回复”。当人们继续回复群组的私信时,被禁用的成员会持续收到包含这些消息的邮件。

作为临时解决方案,我在该成员账号被禁用后,手动将其从所有群组中移除,这似乎已阻止了后续邮件继续发送给他。

我原本认为,当某人被禁用后,即使他们在禁用时仍是某群组的成员,也不应再收到任何群组私信邮件。因此,我将此问题报告为漏洞。

我们论坛使用 MailGun 发送邮件,而 MailGun 的日志证实,即使在账号被禁用一周后,这些群组私信邮件仍被发送到了该禁用账号的邮箱地址。

3 个赞

好的,关于群组私信。请问您具体使用的是哪个版本的 Discourse?

标记已被停用的用户不应产生任何影响,也不会导致任何操作发生。

2 个赞

2.4.0.beta11
latest-release +5
38dd184a16

1 个赞

当然,@tshenry,我们可以复现这个问题吗?

4 个赞

我记得 @simon 之前深入研究过这个问题。他当时是这样说的:

被禁用的用户不会收到群消息或群提及的邮件通知。被暂停的用户不会收到群提及的邮件通知,但会收到发送给该群的私信(PM)邮件。

我不确定这是有意为之的行为,还是暂停机制设计中的疏忽。听起来,同时禁用暂停用户,可以在不将其移出群组的情况下,确保他们不会收到任何邮件。不过,这对版主或管理员来说可能并不一目了然。

5 个赞

同意……完全不清楚。

我从 2017 年开始使用 Discourse,多年来一直管理活跃的社区,却意外地发现一名最近被停用的成员仍在接收电子邮件。这显然更像是一个漏洞,而非有意为之的结果。

此外,对于那些继续参与群组私信交流的人来说,他们是否意识到被停用的成员仍能查看他们 ongoing 的对话?当人们知道某成员已被封禁时,为何会认为该成员仍能查看他们的私信?如果一名前成员仍通过电子邮件被牵制,这还能称为私密吗?

看来更明智(也更符合合理预期)的做法是停止向被停用的成员发送所有自动化邮件。

那么,支持相反做法的理由是什么呢?

1 个赞

这里有一种方法,STAFF PMs(我特意强调)可以穿透并发送给被暂停的用户,以便工作人员解释该用户被暂停的原因。

其他任何情况在我看来都像是 bug @eviltrout……也许如果该群包含工作人员,那就是 @simon 所暗示的例外情况?我不太确定。

但我确实知道,一个不包含任何工作人员的群不应该表现出这种行为,并向被暂停的用户发送邮件?

7 个赞

我再次测试了这一点。被暂停的用户可以接收群组私信中工作人员发帖的电子邮件,但不会接收群组私信中任何非工作人员发帖的电子邮件通知。

7 个赞

在我们的(私有)论坛中,工作人员会像其他成员一样参与随意的群组私信。因此,在此情境下,工作人员向群组发送的私信并无特殊之处——除了它会突破预期,继续发送给被禁言的成员。

为弥补这一点,我们一直在将所有被禁言的成员从各个群组中移除。这多了一步操作,但比不小心向被禁言成员发送私信并导致他们继续收到邮件要好得多。

请结合以下情境思考:当因骚扰或个人攻击而禁言某成员时,你肯定不希望他们仅仅因为工作人员参与了某个私有群组讨论,就继续收到这些邮件。

6 个赞

我最近注意到这个。它被修复了吗?

1 个赞

你好 @Lhc_fl :slightly_smiling_face:

不知你是否有机会测试一下,看看这是否仍然是一个问题?

3 个赞


看起来它仍然会向被暂停的用户发送 PM 邮件。

我使用的是 2.9.0.beta14
(bef1966ca5)

2 个赞

一个小错误,但肯定感觉是我们应该解决的。

也许修复方法是:如果 PM 发送给群组,则忽略被暂停的用户,无论发送者是否为“员工”。我们将检查这是否是一个简单的修复程序,否则可能要等到下个月下旬才能解决。

8 个赞

我刚刚打开了一个 PR,它应该能完全符合您的描述 :slight_smile:

7 个赞