Re: [Exim] mail delivery problem

Top Page
Delete this message
Reply to this message
Author: Greg Ward
Date:  
To: arts
CC: exim-users
Subject: Re: [Exim] mail delivery problem
On 17 October 2001, arts said:
> What i would like to achive is: automatically check "Mail delivery failed"
> mail and unsubscribe the
> email, it couldn't deliver to, from our newsletters.


The obvious answer is use an MLM (mailing-list manager) like Mailman.

One other possibility is to set the SMTP sender of your outgoing
messages to a special address, like list-bounce@???.
How you do this depends on how you send the messages out, eg.:
exim -f list-bounce@??? recip1 recip2 ... < message.txt

You would then have to write a script to handle mail received by the
list-bounce alias. That's where things get fun; to a first
approximation, you have to parse a different bounce format for every
mail server on the Internet. Wheee! That's why it's probably easier
just to use Mailman.

An interesting approach to this problem is taken by ezmlm, the
mailing-list manager written by Dan Bernstein (of qmail fame). ezmlm
seems to use a different SMTP sender address for every single message it
sends out. Eg. one message in my inbox has a sender address of
reiserfs-list-return-7497-gward=mems-exchange.org@??? (that's
from the reiserfs-list@??? mailing list).

Obviously, if any mail is sent to that artificial address, it's a
bounce. And it's immediately obvious which message to which recipient
bounced.

The major drawback is that you have to do a separate SMTP session for
each outgoing message. If you're sending 1 message to 500 addresses in
500 different domains, that's not *too* bad. But if you're sending the
same message to 100,000 addresses, 5,000 of them @aol.com and 3,500 at
yahoo.com, you would be wasting a lot of bandwidth. As I understand it,
qmail works that way anyways, so ezmlm doesn't make things any worse.
But Exim by default tries to be a bit more efficient with your
bandwidth, so if you implement a scheme like this, you lose that
efficiency.

        Greg
-- 
Greg Ward - software developer                gward@???
MEMS Exchange                            http://www.mems-exchange.org