可发送的汇总邮件数量限制(时间跨度最多为1小时)是否可以调整?
(抱歉,我的英语不太好)
我不太确定您指的是什么,但有关摘要邮件及其工作原理的更多详细信息,请参阅 https://meta.discourse.org/t/discourse-activity-summary-emails-guide/36627。
很可能是他的邮件服务商每小时只允许发送一定数量的邮件,而他希望确保 Discourse 的发送量低于该限制。
以下是针对类似问题的解答:How to set Email sending speed limit? - #2 by pfaffman
是的 @Jonathan5,我正好想问这个。谢谢分享,我会仔细阅读相关内容。
是的,目前可以通过 Discourse 全局设置轻松配置摘要邮件的限制。例如,若要将摘要邮件的上限设置为每小时 40 封,您可以在容器构建文件中设置以下内容:
DISCOURSE_MAX_DIGESTS_ENQUEUED_PER_30_MINS_PER_SITE: 20
该 Discourse 摘要全局设置的默认值为每 30 分钟 10,000 封。如果您的用户数量庞大,这可能会导致发送大量摘要邮件。
在我们的网站上,我们使用 SendGrid(付费计划)每月发送约 100,000 封摘要邮件。因此,我们将该值设置为:
100,000 封 ÷ 每月 30 天 ÷ 每天 24 小时 ÷ 每小时 2 次 = 大约每 30 分钟 60 封摘要邮件。运行一直非常顺畅。
另请参阅:
注意:此操作需要重新构建/引导容器,请在更改前慎重考虑。
@neounix 非常感谢。我之前因为用户数量太多,遇到了电子邮件发送的问题。我自己购买了一台邮件服务器,但每小时有 800 封邮件的限制,问题依然存在。
不客气,@ozkn!!
只需将 Discourse 的全局设置调整为每 30 分钟少于 400 封邮件,应该就能正常使用了。
我们是通过一个我编写的“猴子补丁”插件,在“独立 SMTP 通道”中运行摘要邮件的;但由于你运行的是标准的“单一 SMTP 通道”配置,自然可能需要设置得更低一些。
我没冒险,我把它设置为75。这样,每月可发送108,000封邮件。
每月汇总的邮件数量……
此全局设置仅适用于邮件汇总。
![]()
嘿 @ozkn
顺便提一下,只是想告知你。
我在我们主要的 Discourse 环境中对 EnqueueDigestEmails 作业进行了猴子补丁(monkey patch)修改,将摘要作业的间隔从 Discourse 原生的硬性设定的 30 分钟改为每 5 分钟一次。
这意味着,在我们的情况下,我们可以将全局摘要限制变量设置为 10,从而每 5 分钟发送 10 份摘要,而不是每 30 分钟发送 60 份。这样做带来了一些我认为的“优势”,尽管数量很少:
- 每次发送 10 份而不是 60 份(或者例如 50 份而不是 300 份),负载更小。
- 管理员的已发送邮件日志文件一眼就能看得更清楚。
- 当我们重建容器时,该作业总是在“启动时”运行,因此这个较低的数值大大减少了初始摘要作业的发送量(因为我无法弄清楚如何让 Discourse 配置在容器重建后跳过初始作业运行)。
这些优势非常微小,因此我不建议大多数人为了这点主观上的微小优势而去对摘要作业进行猴子补丁;但我个人更喜欢 5 分钟的摘要作业间隔,而不是 30 分钟。经过几天的测试,猴子补丁效果很好,因此我们将继续使用每 5 分钟一次的间隔。
只是想让你知道,供你参考这个“小细节”:slight_smile:
@neounix 感谢您的建议。具体在哪里可以进行此设置?
给你 @ozkn
非常感谢 @neounix
不客气 @ozkn
如果您需要进一步帮助处理这个猴子补丁(monkey patch),由于 Discourse 不支持将摘要邮件队列的间隔从 30 分钟更改为 5 分钟,请在本主题中联系我:
我尚未将此补丁制作成带有 README 文件和站点设置的“完善插件”,但未来我可能会将间隔设为插件的站点设置,这样它就不会被硬编码为 5 分钟了。