| 34 | | * Temporary failures, for which a retry may be succeed at some point. These include no response from the host, and "user mailbox full". Traditional email processing will eventually bounce even temporary failures. (If we want different retry rates for messages that have repeatedly failed (or, say, for different urgency levels), we could use separate queues with separate periodic tasks. Messages could be demoted into less frequent queues based on number of retry failures.) |
| | 34 | * Temporary failures, for which a retry may be succeed at some point. These include mailer misconfiguration or outage, no response from destination host, "user mailbox full"... Traditional email processing will eventually bounce even temporary failures. (If we want different retry rates for messages that have repeatedly failed (or, say, for different urgency levels), we could use separate queues with separate periodic tasks. Messages could be demoted into less frequent queues based on number of retry failures.) |
| | 35 | |
| | 36 | === Proposal === |
| | 37 | |
| | 38 | Initial part: |
| | 39 | |
| | 40 | * Split outbound processing into three queues: |
| | 41 | * New messages |
| | 42 | * Retries |
| | 43 | * Failures (immediately permanent fails and max retries exceeded) |
| | 44 | |
| | 45 | * Let site choose whether to start a new message queue processing run when a new message is posted or use a periodic task for new messages, and periodic task frequencies. |
| | 46 | |
| | 47 | * Include advice in the user guidelines for async vs. periodic new message processing, and for setting periodic task frequencies, based on the site's message behavior. |
| | 48 | |
| | 49 | * Add logging of errors. Detect obvious misconfiguration and object strenuously. |
| | 50 | |
| | 51 | Later: |
| | 52 | |
| | 53 | * Add automated failure handling, and / or a way for the admin to review and deal with the failures. |
| | 54 | |
| | 55 | * Attempt to detect transport issues that the site admin might need to deal with. |