> On Tue, 14 Jan 1997, Phil Olinger wrote:
> > Has anyone augmented resend or written a separate "filter" script to
> > automatically move bouncing addresses from a list to a "bounces" list?
> > It seems like an obvious addition to resend and/or the Majordomo system as
> > a whole.
I have just finished writing such a script and I'm currently alpha-testing it
with two mailing lists.
The basic idea is as follows:
My 'bouncefilter' script receives all messages to owner-$Listname\@@myhost
and checks if they are delivery status notifications (DSNs). Those which
are not DSNs are forwarded to the list-owners. Those DSNs which conform to
RFC 1894 (which is a proposed internet standard for the format of DSNs)
are parsed and acted upon as follows: To those addresses which are marked
as "failed", bouncefilter sends a warning message which starts like this:
Subject: Warning: It was not possible to send you e-mail!
This is just a warning message to let you know that we got an error message
for your e-mail address. This means that you did not receive one or more
items of mail from the $ListName list, and possibly other, more personal
e-mail messages did not reach you either.
The warning messages also contains a copy of the human-readable part of
the DSN. To each of these addresses, these warning messages are repeated on a
daily basis unless no "failed" DSN arrives from that address. If after five
days there are still "failed" DSNs from that address, the address is
automatically unsubscribed. Bouncefilter still sends daily warning messages
(until one of them does not bounce with a "failed" DSN) for 25 more days
which start like this:
Subject: Warning: You're off the $ListName list now!
After we received error messages which indicated that it was not possible
to send e-mail to your address, your address was removed from the $ListName
list $Days. Unfortunately in such a situation it is normally not possible
to notify you of the problem, because e-mail will not reach you. What we do
in such a situation is that we try to send you a warning message like this
every day for a whole month until one of the messages gets through to you.
Since you read this, possibly the problem has gone away now, and you might
want to subscribe again to the $ListName list. You can do this by sending
in the body of an e-mail message To: <Majordomo\@$whereami>
Needless to say, the list-owners receive a daily e-mail message with a log
of what is going on. I've also modified majordomo so that this log also
contains single-line entries for SUBSCRIBEs, UNSUBSCRIBESs, etc.
There are three special cases of which I haven't explained yet how my
bouncefilter treats them:
a) The (unfortunately still very frequent) case of DSNs which don't
conform to RFC1894.
b) The address <firstname.lastname@example.org> (which is subscribed to a list) forwards
to an invalid address <email@example.com> which might generate error
messages for <firstname.lastname@example.org> which don't mention the subscribed
address at all.
c) Someone subscribed a local exploder to my list but goofed so that
the DSNs go to my owner-$Listname alias instead of going to the
operator of the local exploder.
All of these are handled by a simple trick: Every 10 days or so, (the
frequency of this can be set from the configuration file) resend sends
one of the list's messages in a special way: Instead of sending the
message to the -outgoing alias with an envelope-from of
owner-$Listname\@$whereami, the message is sent individually to each
subscriber with a special envelope-from of
where $1 and $2 are obtained as follows:
The processing of error bounces for these addresses relies on the feature
of sendmail that local delivery of messages addressed to an address of the
form $User+$Extra delivers to the mailbox or alias $User. Bouncefilter will
extract the information which is contained in the $Extra from the To: header.
(this is not the perfect solution, and in principle I'd know how to improve
it, but that would require me to hack the sendmail.cf and I don't have time
for that) All such bounces which are not recognized (by some simple
heuristics) as "delay notifications" are treated as failed DSNs, as above.
Marko Hotti <email@example.com> wrote:
> What I am suggesting is that some volunteers reading these two greatcircle
> mailing lists form a Bounce-Handler-Workers team (just like
> majordomo-workers) and start working on it. I think the script should be
> written in perl and possibly use the majordomo file locking when parsing
> the error message against a list of subscribers.
> I have set up a mailing list on our server for this purpose but if you
> think it is more a Greatcircle thing, then maybe the forum should be
> hosted there.
I'm going to subscribe in a minute. I'll post my bouncefilter code in a few
days (so that I won't get mailbombed with repost requests).
> To subscribe to BH-WORKERS send email to <firstname.lastname@example.org> and in
> the body of the message write:
> subscribe bh-workers email@example.com
> I'm using the oxygene confirm key patch so you can see how it works on a
> Majordomo 1.94.1.
> Best wishes, Marko Hotti
Blessings from Switzerland!
Norbert Bollow (Zuerich, Switzerland; http://pobox.com/~nb) <firstname.lastname@example.org>
serving Christ Jesus; co-owner of the CHURCHPLANTERS mailing list.