from what I understand exim retries are supposed to be HOST based, NOT message based. This seems to make sense to me; if a host's server is overloaded or otherwise telling you to "delay sending messages", it would seem to be bad form to delay the message that caused it for a few hours, but keep hammering the server with all the other messages destined for that host (i.e. if yahoo says 'stop', you should stop for all yahoo messages! Not just keep trying them and delaying them as the server tells you over and over to STOP!).
From what I've read, this is how Exim is supposed to work, HOWEVER:
My retry rules (for the 'big hosts', aka the ones that hurt the most when they defer or block, we use: every 5 hours for 4 days):
\N^[^@]+@yahoo.\N * F,4d,5h; \N^[^@]+@rogers.\N * F,4d,5h; \N^[^@]+@hotmail.\N * F,4d,5h;
Result of checking exinext:
Transport: mx-rogers.mail.am0.yahoodns.net [98.139.214.154/208.83.209.44]:1W1Lmv -0004iy-IL error -45: SMTP error from remote mail server after MAIL FROM: SIZE=13119: host mx-rogers.mail.am0.yahoodns.net [98.139.214. 154]: 421 4. first failed: 09-Jan-2014 15:12:45 last tried: 09-Jan-2014 15:12:45 next try at: 09-Jan-2014 20:12:45 Transport: mx-rogers.mail.am0.yahoodns.net [98.139.214.154/208.83.209.44]:1W1M9J -0007Cj-PV error -45: SMTP error from remote mail server after MAIL FROM: SIZE=13105: host mx-rogers.mail.am0.yahoodns.net [98.139.214. 154]: 451 4. first failed: 09-Jan-2014 15:40:17 last tried: 09-Jan-2014 15:40:17 next try at: 09-Jan-2014 20:40:17 Transport: mx-rogers.mail.am0.yahoodns.net [98.139.214.154/208.83.209.47]:1W1Lss -000521-Cf error -45: SMTP error from remote mail server after MAIL FROM: SIZE=13113: host mx-rogers.mail.am0.yahoodns.net [98.139.214. 154]: 421 4. first failed: 09-Jan-2014 15:12:06 last tried: 09-Jan-2014 15:12:06 next try at: 09-Jan-2014 20:12:06
I picked this example specifically because it shows the same mx server and IP (I recall that can have an impact on the retry rules...). As I understand it, if the 15:12:06 email was the first one to trigger the retry, then the one at 15:40:17 (to same host) shouldn't have been attempted for at least 4 hours. What appears to be happening is that it tries to send the email on the first try REGARDLESS of the rules.
How can we fix this?