什么原因会导致某些帖子无法通过邮件列表模式发送

在当前自托管的 discourse 版本中,我遇到了一些主题,其中的帖子没有发送给部分已选择通过邮件列表模式接收所有帖子的用户。

我已检查了我的邮件日志,可以确定的是,此主题的帖子确实已发送给部分用户,但未发送给其他同样选择了接收所有帖子邮件的用户;我的一个测试用户帐户收到了邮件,但另一个测试用户没有收到。

我已尝试多次发布到该主题,至少还有其他人也尝试过。

我没有看到任何可能导致此问题的站点或用户设置,是我忽略了什么吗?

这些是帖子:

  id   | user_id |          timezone
--------+---------+----------------------------
 119197 |     586 | 2023-04-03 11:05:41
 119198 |       2 | 2023-04-03 11:12:03.207053
 119215 |       2 | 2023-04-03 15:42:45.195223
 119216 |       2 | 2023-04-03 16:18:22.664227
 119218 |     508 | 2023-04-03 16:55:42.167977
 119219 |       2 | 2023-04-03 16:56:00.140777
 119222 |       2 | 2023-04-03 18:11:33.953314
(7 rows)

这些是发送给用户 703 的邮件(来自 email_logs 表):

 id  | post_id |  email_type  |          timezone          |      smtp_transaction_response
-----+---------+--------------+----------------------------+--------------------------------------
 242 |  119197 | mailing_list | 2023-04-03 11:18:55.832126 | 250 2.0.0 Ok: queued as C95C443350B8
 243 |  119198 | mailing_list | 2023-04-03 11:22:04.731579 | 250 2.0.0 Ok: queued as B0E2943350B8
(2 rows)

这些是为这些帖子发送的所有邮件:

 id  | post_id |  email_type  | user_id |          timezone          |      smtp_transaction_response
-----+---------+--------------+---------+----------------------------+--------------------------------------
 242 |  119197 | mailing_list |     703 | 2023-04-03 11:18:55.832126 | 250 2.0.0 Ok: queued as C95C443350B8
 243 |  119198 | mailing_list |     703 | 2023-04-03 11:22:04.731579 | 250 2.0.0 Ok: queued as B0E2943350B8
 276 |  119215 | mailing_list |       5 | 2023-04-03 15:52:47.834189 | 250 2.0.0 Ok: queued as B51B443350B8
 277 |  119216 | mailing_list |       5 | 2023-04-03 16:28:29.651872 | 250 2.0.0 Ok: queued as 8760743350B8
 281 |  119218 | mailing_list |       5 | 2023-04-03 17:05:43.582886 | 250 2.0.0 Ok: queued as 8209143350B8
 282 |  119219 | mailing_list |       5 | 2023-04-03 17:06:02.231359 | 250 2.0.0 Ok: queued as 201A243350B8
 287 |  119222 | user_replied |     508 | 2023-04-03 18:21:38.024441 | 250 2.0.0 Ok: queued as EDE47434362C
 288 |  119222 | mailing_list |       5 | 2023-04-03 18:21:38.074723 | 250 2.0.0 Ok: queued as 07474434362D
(8 rows)

在注意到另一个主题上的问题后,用户 ID 5 才被添加到抄送用户列表中。

这似乎发生在今天近一半的主题/帖子中。该系统昨天才上线,但在测试期间我没有遇到过类似问题。

我尝试将每个用户每天的最大电子邮件数设置为 0 以禁用它,尽管它之前设置为 100,但似乎并未达到该数量。

更新:这并没有解决问题。

它不应该在某处记录不发送电子邮件的原因吗?

是:设置 → 日志 → 错误日志

错误日志中没有关于此事的记录,也没有在应发送丢失电子邮件的时间戳附近有任何记录。

这会不会是 sidekiq 的问题?我今天收到了许多关于 sidekiq 占用过多内存的消息。

看起来该主题正在混淆,一旦该主题中有帖子未发送给该用户,将来也不会向该用户发送任何帖子。

该用户/主题的 topic_user.notification_level 似乎被设置为 0(静音?),并且在管理员屏幕上似乎没有办法将其设置回 1,尽管可能可以通过 rails 来完成。但它是如何被更改的?

这是否可能是因为有人在我想办法阻止其发送到中继服务器的电子邮件之前,点击了电子邮件中的“取消订阅”链接?如果是这样,是否应该有一种方法可以撤销它?

移除两个受影响主题中的所有标签或将通知设置为非静音似乎并未改变 topic_users。

此用户个人资料中的静音主题中未显示任何内容。

我不确定是否要批量更改所有主题,这是 topic_users 中 notification_level 值的计数:

 notification_level | count
--------------------+--------
                  0 |      2
                  1 |    177
                  2 |     45
                  3 | 119818

太好了,我终于找到了在哪里为该用户取消静音那些话题!

我必须注意到,在该用户的跟踪页面的左侧列中,静音框上方有一个“显示”标签。

他们不会故意静音那个话题并且不想收到关于它的通知/电子邮件吗?

不,因为本质上它是一个我为将帖子从一个群组转发到外部遗留邮件列表而专门设置的员工账户,据我所知,我从未在该主题上故意将该用户静音。

但至少我学到了很多关于数据结构的知识,阅读了一些 Ruby 代码,并学到了一些关于担任管理员的知识。 :wink:

我认为现在可以关闭这个话题了。