On 03/16/2017 03:16 AM, Jasen Betts wrote:
> On 2017-03-16, Rical Jasan <ricaljasan@???> wrote:
>> Hi,
>>
>> I'm getting 4xx errors from yahoo, with a link to
>> https://help.yahoo.com/kb/postmaster/SLN3434.html
>
> Basically eveything on that page is a lie.
I'm glad somebody else thought so.
>> that says the
>> rejection is temporary and to retry in 4 hours. So, I added the
>> following retry rule:
>>
>> yahoo.com mail_4xx F,2d,4h
>>
>> Now, this appears to cause /each message/ to be retried in 4 hours, and
>> is not a blanket for any/all @yahoo.com recipients.
>
>> Looking at the
>> retry database, it appears to key on all of recipient, sender, mx, ip,
>> and message ID, resulting in the mail server trying to send many
>> messages to yahoo, with each individual message having a retry time of 4h.
>
> The retry rule applies to the context of the error message, if it
> comes before "mail from:" it will delay all emails to that MX ip
> address. if it comes after "mail from:" it applies only to that
> sender etc.
>
>> I'm aware of the option to remove the sender from the key, but what I
>> would like to happen is, assuming there are no hints to start with:
>>
>> 1) A message for someone@??? comes in.
>> 2) Exim tries to deliver it, possibly to every possible MX.
>> 3) Exim updates the retry hints database accordingly.
>> 4) 15 minutes later, a message for someonelse@??? comes in.
>> 5) Exim defers the delivery because yahoo.com retries haven't hit 4h.
>>
>> What am I missing here? We never leave yahoo alone for 4h so they can
>> get over it.
>
> You need to force "queue_only" else the email will be tried as soon at
> it appears on your server.
Ah, yes. Thank you. I remember reading about the queueing options in
the past and thinking, "That sounds extremely useful."
For the record, I used queue_smtp_domains, and that more or less did the
trick. After a couple hours, yahoo started intermittently accepting
messages and now the queues are clear.
I say "more or less" because I noticed the retry database still keyed
with message IDs. Is there a way to make it key on just the remote
host/domain? Keying with the message ID means some messages are still
tried with every queue runner, although no one message is tried until
its 4h are up.
Thanks again for the pointer!
Rical