我在 Discourse 上有一个论坛,但邮件发送速度限制较慢(20 封/秒)。我能否在 Discourse 上设置发送速度限制?
我提出这个问题是因为我发现每天在 unsubscribe_keys 表中积累了近 50 万条记录,但 mail_log 中只有 9000 条,skipped_mail_log 中只有 1000 条。我们的论坛也拥有近 50 万名成员。
我不确定这是否是因为发送邮件过快导致了一些异常问题,因此我尝试限制发送速度,但未能成功。
Unsubscribe_keys
email_log
pfaffman
(Jay Pfaffman)
2
您需要获取更快的邮件服务器,和/或调整设置,以便让邮件能够正常发送。
您可以调整摘要邮件的发送频率,并修改每日最大邮件数量设置。
目前没有速率限制设置。
不确定发送速率是否有必要……
因为即使我们将速率提高到大约每秒 60 次,服务器仍可能发送过快而被封禁。
为什么会有这么多 Discourse 成员收到邮件?他们究竟为何收到这些邮件?这才是更关键的问题。
在典型的 Discourse 安装中,唯一的“全体用户”邮件是摘要邮件,而且即使如此,也仅针对那些过去一周未访问网站、但离开时间又不超过一年的用户。
通常情况下,只有当有人直接与你交流时,你才会收到邮件;而且即便如此,也仅限于你在过去 10 分钟内未通过任何网页浏览器访问过网站的情况。
我们之前开展过一项活动(大约几个月前)。该活动吸引了约9万名注册用户。现在,这些用户可能已经离开数周。因此,系统向他们发送了摘要邮件。
j127
9
你找到解决方案了吗?我正准备切换到 Amazon SES,刚意识到我们的初始限制是每秒 14 封邮件。我不确定 Discourse 向 SES 发送邮件的速度会有多快。该网站发送的邮件量很大。
有人知道 Discourse 发送邮件的最大速率吗?它会尝试每秒发送超过 14 封邮件吗?
如果发送速度过快,我在想是否最好编写一个脚本,将用户的摘要发送时间在一周内均匀分布,而不是集中在一天(我们的导入纪念日)发送大部分邮件。
编辑: 我意识到可以通过查看 Mandrill 日志来确认这是否是个问题。除非 Mandrill 对我有额外的限流,否则我认为我们最多每秒能发送约 8 封邮件,所以应该没问题。
neounix
(Dark Matter)
10
嘿,Josh!
对于摘要邮件,你可以通过将以下 Discourse 全局变量设置为 420,将其限制为每秒 14 封,具体方法是在你的容器构建文件中添加:
DISCOURSE_MAX_DIGESTS_ENQUEUED_PER_30_MINS_PER_SITE: 420
这并不“完全”符合你的需求,但已经非常接近了。
因为每秒 14 封(根据你的帖子)乘以 30 秒等于 420,所以这个全局设置会将摘要邮件限制为每 30 分钟大约 420 封,正如代码“所说”的那样:
另请参阅:
当然,如果你的 SMTP 通道还在发送其他邮件,你需要相应调低这个值;或者你可以为摘要邮件设置一个独立的通道(就像我们做的那样)。
注意:这个全局设置默认是每 30 分钟 10,000 封;如果问我,那意味着每小时会有大量的摘要邮件。因此,我们将这个值设得低得多,这样每月的 SendGrid 账单会更“合理”。
每 30 分钟 30 封摘要邮件 = 每天 1440 封,或每月约 43,200 封(因为在我几天前做出这个更改之前,我们发送了大量的摘要邮件)。下个月,我会将这个值提高到每 30 分钟约 60 封摘要邮件,即每月约 86,400 封左右。
希望这能帮到你。