我遇到了与此处描述的相同问题。本质上,一封电子邮件导致整个队列失败,阻止了任何电子邮件被处理。
从日志中可以看出:
无法处理电子邮件:Email::Receiver::EmptyEmailError
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'[ ](https://github.com/rails/rails/tree/v7.2.2.1/activesupport/lib/active_support/broadcast_logger.rb#L130)
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'[ ](https://github.com/rails/rails/tree/v7.2.2.1/activesupport/lib/active_support/broadcast_logger.rb#L231)
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each'[ ](https://github.com/rails/rails/tree/v7.2.2.1/activesupport/lib/active_support/broadcast_logger.rb#L231)
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'[ ](https://github.com/rails/rails/tree/v7.2.2.1/activesupport/lib/active_support/broadcast_logger.rb#L231)
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'[ ](https://github.com/rails/rails/tree/v7.2.2.1/activesupport/lib/active_support/broadcast_logger.rb#L130)
/var/www/discourse/lib/email/processor.rb:183:in `log_email_process_failure'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/lib/email/processor.rb#L183)
/var/www/discourse/lib/email/processor.rb:29:in `rescue in process!'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/lib/email/processor.rb#L29)
/var/www/discourse/lib/email/processor.rb:16:in `process!'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/lib/email/processor.rb#L16)
/var/www/discourse/lib/email/processor.rb:13:in `process!'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/lib/email/processor.rb#L13)
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:29:in `process_popmail'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/scheduled/poll_mailbox.rb#L29)
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:49:in `block (2 levels) in poll_pop3'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/scheduled/poll_mailbox.rb#L49)
net-pop-0.1.2/lib/net/pop.rb:669:in `each'[ ](https://github.com/ruby/net-pop/blob/master/lib/net/pop.rb#L669)
net-pop-0.1.2/lib/net/pop.rb:669:in `each_mail'[ ](https://github.com/ruby/net-pop/blob/master/lib/net/pop.rb#L669)
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:46:in `block in poll_pop3'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/scheduled/poll_mailbox.rb#L46)
net-pop-0.1.2/lib/net/pop.rb:531:in `start'[ ](https://github.com/ruby/net-pop/blob/master/lib/net/pop.rb#L531)
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:45:in `poll_pop3'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/scheduled/poll_mailbox.rb#L45)
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:14:in `execute'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/scheduled/poll_mailbox.rb#L14)
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/base.rb#L316)
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/base.rb#L303)
/var/www/discourse/app/jobs/base.rb:299:in `each'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/base.rb#L299)
/var/www/discourse/app/jobs/base.rb:299:in `perform'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/base.rb#L299)
/var/www/discourse/app/jobs/base.rb:379:in `perform'[ ](https://github.com/discourse/discourse/blob/486ff2a5643f7a5ac66ccef11a97d6c2a282c9ee/app/jobs/base.rb#L379)
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:137:in `process_queue'[ ](https://github.com/discourse/mini_scheduler/blob/master/lib/mini_scheduler/manager.rb#L137)
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:77:in `worker_loop'[ ](https://github.com/discourse/mini_scheduler/blob/master/lib/mini_scheduler/manager.rb#L77)
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads'[ ](https://github.com/discourse/mini_scheduler/blob/master/lib/mini_scheduler/manager.rb#L63)
这似乎是一个反复出现的问题,希望能得到解决。至少,可以优化处理此类情况的流程。例如,通过隔离有问题的电子邮件,以便其他电子邮件仍能得到处理。它也可能有助于在管理仪表板中包含一个警告,类似于传出电子邮件问题的警告。
如果您需要,我可以私信提供电子邮件正文。谢谢。