POP3邮箱轮询停止工作

我有个怀疑:我们也会将邮件列表的邮件导入 Discourse。如果一封待审核的旧邮件被邮件列表管理员放行,Discourse 的过滤器可能会认为它过于陈旧。由于代码中使用了 break,循环会提前退出。因此,单封旧邮件就可能导致后续所有处理被中断。

另外,由于此 POP 邮件服务器的排序方式,邮件将从旧到新处理。

这个补丁怎么样,@gerhard?此外,如果可能,请优先使用 Discourse.handle_job_exception,以便正确报告其他任何错误。

-           break if mail_too_old?(mail_string)
+           next if mail_too_old?(mail_string)

感谢解释,这很有道理。

@riking 我同意,正确的修复方案应该使用 handle_job_exception。欢迎提交 PR。:wink:

这应该能解决问题。