Re: [exim] dupes on a mailing list

Top Pagina
Delete this message
Reply to this message
Auteur: Phil Pennock
Datum:  
Aan: Randy Bush
CC: exim users
Onderwerp: Re: [exim] dupes on a mailing list
On 2010-09-01 at 10:02 +0900, Randy Bush wrote:
> i run majordomo lists. one list has almost 2800 subscribers. in the
> last weeks, [some] folk subscribing to that list have gotten duplicate
> mailings, four to six of them.


So the remote side has temp-failed the mail and delivered it anyway, or
the remote side never responded at the end of the message (after "."),
so the sender side has to retry, but the remote side delivered anyway.

In either case, you're looking for delivery attempts marked in the logs
with '==' instead of '=>' or '->'.

> i wonder about the following (local names hacked to 'foo')
>
> 2010-08-31 16:33:51 1OqTiu-000JMa-IG SMTP error from remote mail server after RCPT TO:<foo@???>: host mx2.hotmail.com [65.54.188.126]: 452 Too many recipients
> 2010-08-31 16:33:51 1OqTiu-000JMa-IG SMTP error from remote mail server after RCPT TO:<foo_Standley@???>: host mx2.hotmail.com [65.54.188.126]: 452 Too many recipients
> 2010-08-31 16:33:51 1OqTiu-000JMa-IG SMTP error from remote mail server after RCPT TO:<foo@???>: host mx2.hotmail.com [65.54.188.126]: 452 Too many recipients
> 2010-08-31 16:33:51 1OqTiu-000JMa-IG SMTP error from remote mail server after RCPT TO:<foo@???>: host mx2.hotmail.com [65.54.188.126]: 452 Too many recipients
> 2010-08-31 16:33:51 1OqTiu-000JMa-IG SMTP error from remote mail server after RCPT TO:<foo@???>: host mx2.hotmail.com [65.54.188.126]: 452 Too many recipients
>
> can i throttle down somehow to see if that helps?


Use a separate Router for msn.com:hotmail.com and invoke a separate
Transport which sets max_rcpt to something lower than the default of
100.

Or, use one Router which passes data down to the Transport via
address_data and derives that data from a lookup keyed by domain, and
have the Transport do extracts against that data for various fields.

For instance, you might have domain_overrides as a DB file of some kind,
keyed by domain and with the data being a space-separated list of
key="value" items, such as:
DB-Key: msn.com
DB-Value: max_rcpt=20 foo=bar

DB-Key: example.com
DB-Value: tls=y

Then the Router would have:
transport = smart_smtp
address_data = ${lookup{$domain}partial()cdb*{/path/to/domain_overrides.cdb}}

and the Transport would be:

smart_smtp:
driver = smtp
hosts_require_tls = ${extract{tls}{$address_data}{*}{}}
tls_verify_certificates = ${extract{tls}{$address_data}{/etc/ssl/certs}{}}
max_rcpt = ${extract{max_rcpt}{$address_data}{$value}{100}}

and you can then expand this with any other overrides you want to have
on a per-domain basis.

-Phil