即使所有设置均已配置为不发送电子邮件通知,用户仍会收到电子邮件

今天早上我发现,在过去的 2 周里,我们已经耗费了超过 5000 个电子邮件积分,因为在我们大约 1000 名活跃用户中,只有大约 60 名用户启用了电子邮件通知。

我已经从管理员设置中禁用了电子邮件,并对所有人进行了追溯性操作,还添加了一个 CSS 来隐藏用户控制面板中的电子邮件设置。

这是该设置的截图。它之前就是这样的,但我再次设置它,以触发一个模态框,询问我是否要追溯性地更改现有用户的设置。

我还开了一个帖子,向用户解释这次更改的原因,以及不幸的是,Discourse 不允许对我可以从自己的论坛发送哪些电子邮件进行精细控制,所以我要么允许每个人设置他们想要的任何内容,要么只允许管理员(或者没有人,但这在非常特定的边缘情况下几乎没有用)。

回复我的用户之一告诉我,他们仍然收到电子邮件。
我执行重置大约是在上午 10 点。这是该用户收件箱的截图。

我冒充了该用户以确保没有问题,并再次启用了该设置的可见性以进行验证,确实,尽管管理员面板中的选项告诉我它们会被更改,但设置并未被更改。

是否有任何 rails 命令可以运行,以确保所有用户都已关闭这些选项(设置为从不),正如他们应该的那样?

1 个赞

在历史性地应用更改时,它只会重置那些尚未手动选择偏好设置的用户,以避免覆盖任何个人选择(例如,为已选择退出电子邮件的用户启用电子邮件)。它提供的数字应告诉您受影响的用户数量,这仅限于符合条件的用户,而不一定是用户的总数。

您应该能够使用 rails 控制台为那些用户偏好设置值。:+1: 此主题中应该有一些技巧 Edit a user preference for everyone or a subset of users

4 个赞

以防万一有人需要。我对 Ruby 一无所知,而且这个论坛上的旧帖子似乎已经过时了。

目前,正确重置每个用户这些选项的 psql 查询是:

UPDATE user_options SET email_messages_level = 2, email_level = 2, email_previous_replies = 2;
4 个赞

这是 Rails 的方式:

UserOption.all.update_all(email_messages_level: 2, email_level: 2, email_previous_replies: 2)
5 个赞

8 个帖子已拆分为新主题:让“历史性更改默认值”文本更清晰

5 个帖子已拆分为新主题:改进 Discourse 文档

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