Defect #31939
closed
Emails are dropped after timeout
Added by Michael Gerz over 5 years ago.
Updated about 1 month ago.
Category:
Email notifications
Description
Redmine 4.0.x uses ActiveMailer to send emails asynchronously. In my configuration, I am also using ActiveJob::QueueAdapters::AsyncAdapter.
On my server, I am facing the odd situation that, when notifying the projects users, the initial emails are rendered and sent within about 100ms. However, after 8-10 emails, ActiveJob reports a series of email delivery problems because the execution has expired (after 30sec each). Unfortunately, I am not able to figure out (a) what causes the timeout (the Redmine server or the Mail server?) and (b) how to modify the 30sec timeout value.
In any case, it would be very helpful if Redmine didn't drop emails that cannot be delivered instantly but instead makes a retry after a certain period of time. (Imagine that a mail server may be offline temporarily!)
Does anyone have an idea on how to implement such a "retry-after-x-seconds" approach? Thanks in advance!
- Status changed from New to Resolved
Our mail server considered the quick sending of hundreds of email as a DoS attack.
Adding a local MTA solved the problem.
=> closing ticket
- Status changed from Resolved to Closed
- Resolution set to Invalid
Thank you for your feedback. Closing.
Michael Gerz wrote:
In any case, it would be very helpful if Redmine didn't drop emails that cannot be delivered instantly but instead makes a retry after a certain period of time. (Imagine that a mail server may be offline temporarily!)
Does anyone have an idea on how to implement such a "retry-after-x-seconds" approach? Thanks in advance!
This part is not adressed at all and since I’m experiencing the same problem of mails just being dropped and not retried, see #41515, I’d like to ask to reopen this ticket to address this as it’s really bad for most workflows when such mails are just dropped.
Thanks for your consideration!
We generally advise to use a persistent job queue rather than the default ActiveJob::QueueAdapters::AsyncAdapter
such as Sidekiq, DelayedJob or others. These persistent job queues will generally retry failed jobs a number of times.
Also available in: Atom
PDF