Re: [Exim] Administrivia - Christmas is coming, the autorepl…

Top Page
Delete this message
Reply to this message
Author: Greg A. Woods
Date:  
To: exim-users
Subject: Re: [Exim] Administrivia - Christmas is coming, the autoreplies are getting fat
[ On , December 13, 2001 at 12:40:59 (+0000), Nigel Metheringham wrote: ]
> Subject: [Exim] Administrivia - Christmas is coming, the autoreplies are getting fat
>
> Just to make things very clear about this, autoreplies should:-
>
>   - reply to the envelope sender of a message, not the From:
>     line and not some other random header data


I most strongly disagree with that advice. An autoreply tool is an
agent operating on behalf of the user and MUST therefore reply in the
same way the user would reply, i.e. normally using "reply-to:", or if
there is none, the "from:" contents. Sending an auto-reply to the
transport layer envelope address when such a reply is intended to reach
the human originator of an incoming message is just plain WRONG (and
won't always work either!).

Note that sending autoreplies to the envelope sender address of message
is also a sure way to get a flood of them in any list manager's mailbox.

I don't know about all the other transports which support envelope
sender addresses, but certainly with SMTP the ONLY valid use of the
envelope sender address is to return delivery status notifications.

>     (if the envelope
>     sender is <> then it should not reply).


This is true though, regardless of how the reply address would otherwise
be chosen. Since this advice is being written for folks who might not
all be using Exim, it's important to point out that the envelope sender
address won't always appear as "<>" in the message headers available to
an autoreply agent. Some mailers will expand an empty address into a
string like "<MAILER-DAEMON@???>" or something similar.

Indeed the envelope sender address won't always even appear in the
standard "return-path:" header -- some older mailers put it only in the
"sender:" header (which has an entirely different purpose when used in
the standards compliant way).

>   - send replies with the envelope sender set to <> - ie
>     they should be marked as bounce messages (this prevents
>     mailing loops)


This is very debatable too. Certainly it's a good way to avoid mailing
loops, but it's not ideal. Proper loop avoidance is done with the
"precedence:" header, and additionally by keeping a list of recent
message senders and not sending to any of them.

Since this advice is being written for people who might not all be
sending their autoreplies through Exim, it's important to note that not
all mailers will allow a normal user to set the sender envelope address,
and certainly not to "<>" (or whatever the mailer uses to represent that
address, such as "MAILER-DAEMON").

No matter how the envelope sender address for the autoreply is set, the
the autoreply message itself must include the following header:

    Precedence: bulk



>   - only reply to messages personally addressed to the
>     recipient (ie recipient should appear in To/Cc)


or "resent-to:" or "resent-cc:"


>   - not reply to mailing list and similar mail - ie check
>     the Precedence: header and not reply to list/bulk/etc

>
>   - rate limit replies - ie only send one reply per week to
>     any single address

>
> - work very hard at avoiding loops



This last one is perhaps redundant, even given its importance. The
either of the second last pair will avoid most loops, and together they
will avoid all damaging loops.



If anyone needs a vacation tool that is compliant with all of the rules
I've outlined, you can find it here:

    ftp://ftp.weird.com/pub/local/vacation.shar


This version should be quite portable, but has only been tested on
NetBSD. It needs syslog(3), dbopen(3), and fgetln(3).


--
                                Greg A. Woods


+1 416 218-0098; <gwoods@???>; <g.a.woods@???>; <woods@???>
Planix, Inc. <woods@???>; VE3TCP; Secrets of the Weird <woods@???>