procmail
[Top] [All Lists]

Re: Procmail suggestion for ! recipe action

1995-12-18 13:55:22
Sten Drescher <stend(_at_)cris(_dot_)com> wrote:
SRvdB> 1. This is a non-trivial operation to be done by procmail itself
SRvdB> (code bloat alert).

      Then remove the non-compliant forwarding entirely, that should
reduce code bloat.

Removing it is not an option anymore.  It is required for backward
compatibility.

As to non-compliantness, that is not necessarily true.  For one, the '!'
operator can be viewed as a tool which allows many things.  If, for example,
you add Resent-* fields before the mail is sent on, or if the mail
already carries such fields, it will happily pass them along.

RFC822:

     4.2.  FORWARDING

          Some systems permit mail recipients to  forward  a  message,
                              ^^^^^^^^^^^^^^^
     retaining  the original headers, by adding some new fields.  This
     standard supports such a service, through the "Resent-" prefix to
     field names.

The question is, should procmail be considered a recipient?  You could
say that procmail still is part of the MTA (Mail Transport Agent) and is
therefore not even entitled to add Resent-* fields.
In order to give programmers/users an opportunity to decide, procmail
does not decide for them.

SRvdB> 2. It is a trivial operation for formail.

      So?

So it should be done by a tool like formail.  And since we want to avoid
duplicating effort, this effectively bans the functionality from most other
programs.

SRvdB> 3. If you want the Resent-* fields, adding them with formail *is*
SRvdB> the cookbook way of doing it (i.e. it is not considered to be
SRvdB> ugly or awkward or anything, just normal).

      Sorry, but if you want to be a mail agent, you should follow the
standard.

Only if you want to be an MUA.  If you want to be an MTA, RFC 822 explicitly
denies you to add them.

 If code bloat is your concern, remove ! entirely.  Otherwise,
do it the proper way.  In for a penny, in for a pound.

What if the Resent-* fields are already there?  There are too many decisions
that need to be made before adding those fields.  The only way to give the
user complete control over these decisions is by leaving it up to the
user to fit in a suitable call to formail.
-- 
Sincerely,                                                          
srb(_at_)cuci(_dot_)nl
           Stephen R. van den Berg (AKA BuGless).

"Well, if we're going to make a party of it, let's nibble Nobby's nuts!"