Re: [exim] Adding informative headers to bounce messages

Top Page
Delete this message
Reply to this message
Author: W B Hacker
Date:  
To: exim users
Subject: Re: [exim] Adding informative headers to bounce messages
Ian Eiloart wrote:
>
> --On 23 November 2009 12:25:45 +0000 Ed Singleton <singletoned@???>
> wrote:
>
>> On 17 Nov 2009, at 17:28, W B Hacker wrote:
>>
>>> Ed Singleton wrote:
>>>> I'm trying to work out how to add useful headers to the bounce
>>>> messages that Exim generates in order to assist automatic processing
>>>> of error messages. I've googled quite a bit, and read through the
>>>> Exim book, but can't find anything on it.
>>>>
>>>> Any information on how to add more information such as the error
>>>> message or error code to the headers, would be greatly appreciated.
>>>> Even if people can suggest terms to search for, that would be good.
>>>>
>>>> Thanks
>>>>
>>>> Ed
>>>>
>>> go ogle PVRS/BATV and/or search this list archives for BATV.
>>>
>>> (Bounce Address Tag Verification)
>>>
>>> Here is a decent explanation from an external-to-exim source;
>>>
>>> http://www.ironport.com/company/pp_eweek_07-27-2006.html
>>>
>>> There are many threads in archives here as to how-to, pros, cons,
>>> benefits,
>>> complications, etc.
>> Thanks for this. Sorry for my slow follow up; I have been away from
>> the internet for a while.
>>
>> The BATV stuff seems to be about confirming that bounces are genuine.
>> I'm looking more for trying to find out why things bounced. EG Is it
>> a hard bounce or a soft bounce? Is the MTA that we were trying to
>> deliver to claiming that the account doesn't exist?
>
> Then, you need to be looking at error codes from the remote server when you
> do the delivery. Check the RFCs for SMTP error codes. Most sites won't
> generate bounce messages, they'll either trash your mail or reject it at
> SMTP time.
>
>
>
>> I understand that a lot of MTAs give false information, but I'm
>> willing to work with that. We send out a lot of marketing emails and
>> I want to automatically remove anyone who hard bounces. I'm not
>> entirely sure what to do with soft bounces, particularly as that
>> involves some negotiation with the marketing department.
>>
>> I'm currently looking to only deal with the bounce messages that are
>> generated by the version of Exim under my control. Bounce messages
>> generated by other MTAs I'll deal with later.


IMNSHO, best if this is offloaded to the MLM.

A) it can direct these to the 'list manager(s)' - not necessarily the same as
the MTA admin or even MLM admin.

B) MLM's also have logic for setting dynamic thresholds for how many bounces
over what period of time they should react to, and whether to temporarily place
an addressee on hold or 'vacation' status, when to start retrying, and
if/as/when to shorten or lengthen the duration of the suspense period or make it
permanent.

Not to mention a whole locker-full of tools to make rejection less likely in the
first place... which can be even more useful.

One can make a fair MLM out of Exim, but there are donkey's years of prior art
and hard-won experience in the top several MLM packages that you may not have
the spare time to catch up with. Think merely the doiuble-opt-in admin work etc.

And the best of them are F/OSS, so why not install one and let it do the
specialized lifting? Separating the admin load into basic MTA and bespoke MLM
can pay off with a little as one list and as few as fifty addressees.

At five lists and five hundred upward, enough folks are hitting quotas, changing
addresses, going off to new interests, joining, leaving, etc. that it's no
contest. The MLM earns its keep.

Bill


>
> Chapter 46 and sections 14.22 and 14.23 of the exim docs may be helpful.
>
> But, I can't see a way to access the SMTP return code, extended error code,
> or message - except when they're the results of a callout failure, when you
> have $acl_verify_message and $recipient_verify_failure
> $sender_verify_failure
>
>
>
>> AFAICT It will be easiest to parse the message body and try and
>> extract the information that way. I've googled quite a bit but can't
>> currently find anything that already tries to do this (I'm mainly
>> looking for Python related stuff as that's what I'm most comfortable
>> with). Lamson (http://lamsonproject.org/) has some useful stuff that
>> parses the headers, but nothing that parses the bodies.
>>
>> Anyway, I guess I should have been clearer in my initial email, but
>> I'm fumbling around in the dark quite a bit here.
>>
>> Thanks
>>
>> Ed
>
>
>