聊天未按用户偏好发送通知电子邮件

是否有办法强制更新聊天频道中所有用户的偏好设置,以便他们接收聊天电子邮件通知?

我希望用户默认接收电子邮件。

谢谢。

你为什么要这么做?用户偏好当然是他们想要的。当我注册一个新的 Discourse 实例时,我做的第一件事就是去我的个人资料,并将电子邮件偏好更改为“从不”。如果我发现有人认为他们比我更了解我希望如何与 Discourse 互动,我会非常恼火。事实上,如果管理员对我这样做,我会认为这是垃圾邮件!

3 个赞

是的,它不是用来覆盖用户选择的内容。

但是,设置初始默认值是有意义的。在我们启用聊天功能时,目前似乎没有电子邮件发出。

在我们的论坛类型中,人们不会进去设置偏好设置,并期望得到充分的通知。

1 个赞

我刚检查了我的测试站点,我认为聊天电子邮件通知的默认设置是“仅在离开时”(唯一的替代选项是“从不”)。

我认为应该为“用户偏好设置”管理员设置添加一个默认选项,尽管可能与您建议的相反。:slightly_smiling_face: 这将像其他默认设置一样工作,即它只会更改尚未手动选择偏好的用户的偏好。

我已经将此提交给 UX 考虑。:+1:

4 个赞

谢谢。但默认的“仅在离开时”不应该向最近未访问过网站的所有人发送电子邮件吗?

我在通用聊天频道有 300 多名成员,但只发出了 2 条消息。
不用说,这 300 人中大部分在 15 分钟的时间窗口内都不在网站上。

3 个赞

您不会收到每条聊天消息的通知,只会收到您被提及的消息(您自己的@提及、@here@all),所以这也许可以解释这一点?

4 个赞

抱歉,我可能没有说清楚,我使用了 @(这里添加了一个空格),但它不起作用。

附注:我其实想知道为什么你没有被添加为我网站上“最近活跃会员”的聊天对象。 :grinning:

2 个赞

啊,恐怕在我完成了帖子投票评论的测试后,我已经删除了你在我网站上的测试账户。:slight_smile:

我快速玩了一下,看看聊天用户何时会被包含在“@所有人”中,但(从我非常简短的观察来看)似乎是频道列表中的每个人。你可以挑选几个没有收到电子邮件的用户,看看他们是否收到了通知,以及他们的聊天电子邮件偏好设置是否如预期?

3 个赞

这是我的测试:

1. 聊天频道设置,用于通知所有内容(但我认为这不会影响电子邮件)。

2. 我从频道中的 313 名成员中选择了一名,以下是标准用户偏好设置 - “仅在离开时发送电子邮件”。\n使用 @ 所有人创建的聊天消息已发送通知,但未发送电子邮件。

3. 除 2 名成员外,均未发送电子邮件。两人都是管理员/版主,并且都曾使用过聊天 - 不确定这是否是区别因素。

4. 另外,看起来管理员看不到用户的聊天偏好设置。

2 个赞

我今天早上又进一步探索了一下,我的似乎运行正常。:thinking:

我有 6 个测试用户,都是 ~general 频道的自动注册成员。其中一个是管理员,一个是全新的 TL0 用户,他从未打开过聊天频道(或聊天)。除了新的 test_six 用户之外,他们都没有在昨天之后登录过(尽管我确保他们在测试前至少有 15 分钟的“停机时间”)。

使用 @all ping ~general 频道向他们所有人发送了通知。片刻之后,6 封 chat_summary 电子邮件被发送到他们各自的测试电子邮件地址。

我不确定还有什么需要检查的。我查看了代码,但我的代码解读能力不太好。:slightly_smiling_face: 我会再想想。


感谢您提到这一点。:+1: 我已将其上报给团队。:slightly_smiling_face:

2 个赞

谢谢。
我自己并没有多少专业知识,lib/chat_mailer.rb 中的 users_with_unprocessed_unread_mentions 似乎没有拉取所有需要发送邮件的用户?
有人能验证一下吗……

@JammyDodger
已更新标题以反映实际问题。
您还能建议其他测试吗?
我应该将此标记为错误,还是您会看到其他可以重现的测试?

我们还没有一个清晰的复现。

我的理解是 @JammyDodger 正在根据你的报告尝试复现此问题,但到目前为止尚未成功。

几点说明:

为了澄清,这不是一个频道范围的设置,而是该频道的用户偏好设置。但你展示的是默认设置,所以我怀疑 313 名成员中的大多数都这样设置了。

你确定他们当时离开了吗?如果他们在网站上,则不会发送电子邮件通知。

好的,这有力地证明了 某些东西 没有按预期工作。我本以为 313 人中会有超过 2 人离开。有没有可能他们当时都在网站上?

2 个赞

感谢澄清。我原以为这些是管理员可以更改的频道设置。坦白说,“设置”听起来非常像管理员控件。

是的,可以肯定地说,其中大部分人(如果不是全部)在之前的 15 分钟内离开了(我希望我们有这样的参与度 :blush:)。我选择了一个非员工账户,它离开了,也检查了一下。

1 个赞

我似乎已成功复制了此问题。 :slightly_smiling_face: :raised_hand:

在我现有的测试站点上无法复制,但我想知道这是否是因为我之前已经做过/更改/调整过某些事情,从而可能影响了它,所以我启动了一个新站点并在其上进行了尝试。

  • 创建了新站点
  • 启用了聊天,并将 everyone 添加到了 chat_allowed_groups(与 staff 并列)
  • 注册并登录了三个测试用户,将他们自动加入到 ~general 频道(并将其中一个设为管理员)。将他们全部登出。
  • 泡了一杯茶
  • 以主管理员身份,确保他们是该频道的成员,并使用 @all ping 了他们

  • 所有人都收到了通知
  • 只有管理员用户收到了关于此事的电子邮件

5 个赞

@JammyDodger - 您是否更改了 chat allowed groups 设置的值?如果将其设置为仅允许 staff,那就可以解释为什么只有管理员收到了邮件。

我启用了聊天,并同时添加了 everyone:+1: (抱歉,我在分步说明中遗漏了这一点。我现在就添加)

我认为我已经明白了,@Roman:raised_hand: 如果我将 everyone 添加到 chat_allowed_groups,那么每个人都可以访问聊天并接收通知,但不会收到 @all 邮件。但是,如果我添加 trust_level_0,那么非员工测试用户就会收到关于 @all 提及的邮件。

6 个赞

太棒了,真是一次彻底的调查!:clap:

我检查过了,我的网站上有工作人员,聊天中允许的用户组都在。

4 个赞

感谢 @JammyDodger :tada:

我们需要区别处理 everyone 的情况,因为它与其他群组不同。我在这里准备了一个修复方案:

8 个赞

@alehandrof 报告说,一些用户没有收到群聊消息的电子邮件通知:

我正在尝试与特定人员进行聊天,有人报告说“我没有收到任何电子邮件,告知我有人在聊天中发表评论,即使我已经设置了电子邮件通知的正确选项。”

用户表示他们的偏好设置是默认的,并且最近没有活跃:

并且群组直接消息的“频道”设置默认接收“所有活动”的通知,因此通知不应需要 @提及

另一方面,Alex(管理员)直接收到了电子邮件通知。

Alex,你能确认你的站点目前运行的是哪个版本吗?

聊天记录
Originally sent in chat feedback
alehandrof

我正在尝试与特定人员进行聊天,但不太明白它如何/何时通过电子邮件通知人们。

相关的设置似乎是这个:

但有人报告说“我没有收到任何电子邮件,告知我有人在聊天中发表评论,即使我已经设置了电子邮件通知的正确选项。”

我这里遗漏了什么?

mcwumbly

@alehandrof 我猜遗漏的部分是电子邮件只发送给被 @提及的人,而不是他们所在的频道中的所有消息。

用户还有一个每个频道的设置,可以选择接收所有活动的通知。也许可以试试那个?我不记得在这种情况下是否会发送电子邮件。

alehandrof

但如果我向一群人(而不是一个频道)发送聊天,我当然是想告诉那些特定的人,对吧?

另外,在这三人小组中,即使我没有被 @提及,我也收到了电子邮件通知。

似乎只有我收到的示例电子邮件

为什么我会收到,而他们不会?(我是一名管理员,如果这有区别的话。)

我刚注意到你说的关于设置的事情。我会跟进他们,看看他们的设置是什么样的。但如果这些设置影响了这种行为,那有点不清楚,因为它们只提到了桌面和移动通知,而没有提到电子邮件。

顺便说一句,我检查了一下,至少有一位同事的设置和我一样。所以我仍然不明白聊天是如何处理电子邮件通知的。

mcwumbly

哦,说得对。我认为这应该会发送电子邮件通知,因为“所有活动”是直接消息(包括多人消息)的默认通知级别。

我将把这个变成一个主题,以便我们可以更深入地研究。