我和我们的一些用户在理解接收消息邮件通知的这两个选项之间的区别时遇到了困难:
以及
根据我的测试,即使选择了“始终”,如果用户正在浏览论坛,也不会发送邮件通知——即使该用户没有查看消息或打开通知下拉菜单。
以下是为某人跳过的一封邮件,该用户已选择“始终”接收消息的邮件通知:
该用户正在浏览论坛,但在 10 分钟内没有查看消息(因为我们的目的是了解该行为)。
因此,如果“始终”选项会在用户使用 Discourse 时取消邮件通知,那么“仅在离开时”选项的区别是什么?
我了解将其设置为“始终”的风险,因为选择此选项的用户可能会收到过多的邮件通知。但目前来看,它似乎并没有实现人们通常对“始终”所期望的行为。这种表现是预期的吗?
2 个赞
simon
2
当用户选项“有人给我发消息时发送邮件通知”设置为“始终”时,用户只有在已阅读私信的情况下才不应收到该私信的邮件通知。在这种情况下,日志中的跳过原因应显示为“该邮件所关联的通知已被阅读”。这仅应在用户实际访问了网站上的该消息时发生,仅在下拉菜单中查看通知不应导致私信被跳过。
“用户最近在线”这一跳过原因不应显示给已将消息通知级别设置为“始终”的私信收件人。您确定截图中的被跳过消息是私信吗?
4 个赞
您描述的情况有道理,但这与我们在最新稳定版中观察到的现象不符。
为了再次确认,我刚刚又复现了一遍。
发送了一条消息。接收者在 10 分钟内打开了该消息,邮件通知随即被立即取消:
我又用另一条消息进行了测试,但这次接收者没有立即阅读消息——他继续浏览论坛(未进入消息页面);邮件通知的取消方式与上述完全一致。据我观察,通知几乎在接收者使用论坛时就被立即取消了,看不出有什么差别。
我不确定是否理解对了这个问题。截图中的 user_private_message 难道不是仅针对私信的吗?
不确定这是否有帮助,但我看到带有“该邮件所关联的通知已被阅读”提示的跳过邮件,只出现在 user_mentioned 类型的邮件中,而从未出现在 user_private_message 类型的邮件中(至少在我们列出的跳过邮件列表中是这样)。
我还能提供其他信息吗?
3 个赞
simon
4
有道理,我目前正在 tests-passed 分支上进行测试。
是的,没错。你的截图中显然是一条私信。对于选择了“当有人给他们发消息时始终发送邮件通知”的用户,只要他们尚未通过 Discourse 用户界面阅读该私信,系统就应发送该邮件。
3 个赞
我没有一个方便的方法来在 tests-passed 环境下复现此问题,所以有人通过 meta 向我发送了消息,希望这样也足够了。当时我正在浏览 meta,在对方发送消息后,我继续浏览了 meta 超过 10 分钟(期间没有查看消息):在此期间没有收到任何电子邮件通知,而我的设置是私人消息“始终”发送通知。这与我之前在 stable 版本中描述的行为一致。
您能否检查一下“跳过的邮件”日志,看看 这里 中最后一条消息的通知发生了什么?
消息的移动端推送通知是否会取消电子邮件通知?我立即收到了推送通知(而不是 10 分钟后),但在 10 分钟的间隔内,我既没有打开它,也没有打开 DiscourseHub 应用。
2 个赞
simon
6
我在 Meta 的“被跳过”或“已发送”邮件日志中都没有看到该消息的条目。我不确定原因是什么,但您的消息可能生成邮件的回复是:
hello hello hello hello hello hello hello hello
我不确定多次发布同一个词是否会触发某些阻止发送邮件的机制。
我会在自己的网站上进一步调查,以确保邮件按预期发送。
2 个赞
顺便一提,我请求再发送一条消息。这次,希望看起来更“正常”一些。
情况依旧。只要我继续浏览 Meta,我就收不到该消息的邮件通知。截至目前(已过去 15 分钟),邮件仍未收到,而且由于我尚未打开该消息,新消息通知依然存在。
2 个赞
我们能否在 Meta 上复现这个问题 @tshenry?
2 个赞
tshenry
(Taylor)
10
那么,我首先想说明一下,我们将默认邮件消息级别设置为“始终”。这有点出乎我的意料,但也许其初衷是认为私信通常需要尽可能多的曝光。
不管怎样,我刚刚在 Meta 上创建了一个测试账号,并向该账号发送了一封私信。随后,我继续以测试用户身份浏览论坛,忽略了新消息通知。
几分钟后我查看了日志,发现它似乎被跳过了:
尽管设置如下:
因此,回答你的问题,我确实可以在 Meta 上复现这个问题!
7 个赞
techAPJ
(Arpit Jalan)
13
已通过以下方式修复:
感谢 @mentalstring 报告此问题。: +1:
8 个赞
在这里对 Meta 进行快速测试后,它现在似乎确实按预期工作。感谢您的修复 
6 个赞