lindberg@chalmers.UUCP (08/17/87)
A contest for all Sendmail Gurus: Is this a bug or feature?
Host: VAX 11/780
System: UNIX, MtXinu 4.3BSD with NFS
Program: /usr/lib/sendmail, distributed version 5.51
MtXinu 4.3BSD sendmail applies the mailer's Recipient-rule (R=,
used for To:, Cc: etc) on the "user" part of the Rule Zero address.
Unfortunately this behaviour breakes all attempts to handle uucp
mail with correct "Cc:" addresses. If we look at the result of
sendmail parsing an address we get (to ease reading I've dropped
the real syntax):
In 4.2 - Rule S0:
foohost!foo -> uucp: uux - -r foohost!rmail (foo)
In 4.3 - Rule S0:
foohost!foo -> uucp: uux - -r foohost!rmail (R-rewrite(foo))
As far as I know, the Recipient rule is mostly used to handle "Cc:"
addresses (in principle it also deals with "To:" but those addresses
are already correct, or the mail wouldn't have reached the uucp mailer
anyway). If we send a mail with
To: foohost!foo
Cc: bar
we of course want "foohost!foo" to receive a mail containing
To: foohost!foo
Cc: ourhost!bar
so that his "reply" works correctly. To do so, we have to use the
mailer's Recipient-rule (R=), catch all names that do not contain
a "!" or "@" and tack on our hostname (creating "ourhost!bar").
Then, however, rule S0 gives:
foohost!foo -> uucp: uux - -r foohost!rmail (ourhost!foo)
which, mildly said, isn't what we wanted!
The fix is quite simple: Around line 921 in parseaddr.c we find:
/* rewrite according recipient mailer rewriting rules */
rewrite(++tv, 2);
-> if (m->m_r_rwset > 0)
-> rewrite(tv, m->m_r_rwset);
rewrite(tv, 4);
Simply remove the two lines marked with "->". This is the same as
having an empty R= rule so it should be quite safe (it does work
OK here).
Finally, a few questions:
+ Is my interpretation of how to use the R= rule wrong, or
is this really a bug? It wasn't there in 4.2BSD...
+ If we don't handle "Cc" in the R= rule, where should it be
taken care of? How do you do it?
+ Is this even a feature? If so, could someone please explain
its usage to me?
Gunnar Lindberg
Department of Computer Science
Chalmers University of Technology
S-412 96 Gothenburg, SWEDEN
lindberg@cs.chalmers.se, lindberg@chalmers.{UUCP,CSNET,SUNET}