On Sat, 11 Jan 2014, Steffen wrote:
I have:
... deliverable: mailer local, user uid+detail
instead of "deliverable: mailer local, host detail, user gcr"
Hmm, see
http://etutorials.org/Server+Administration/Sendmail/Part+I+Build+and+Install/Chapter+4.+Configure+sendmail.cf+with+m4/FEATUREpreserve_local_plus_detail/
My mc-file has this setting commented out (prefixed by dnl). Ah, I see
where the processing differs. I had added this:
SLocal_localaddr
R< $* > $1 Remove <> from address
R$+ + $* $: $1 Remove detail from address
R$+ $: <$(localuser $1 $: TEMPFAIL $)> $1 Query socket
map server, if that's a local user
R<OK> $* $# ok yes, this preserves detail
R<REJECT> $* $# error $@ 5.7.1 $: 550 User unknown
R<TEMPFAIL> $* $# error $@ TEMPFAIL $: $1 try again later Does
it work????
See the R<OK> line. The map is to verify if the user is local or not.
In my system sendmail cannot do so on its own. Maybe the FEATURE above
works for the standard config.
"FEATURE(`preserve_local_plus_detail')" is actually one of the first
things I tried when I started working on this problem, but it doesn't
quite work with the standard configuration:
$ sendmail -bv -d21.12 gcr+xy...@badger.tharned.org
...
rewrite: ruleset final returns: gcr + XYZZY
rewrite: ruleset localaddr input: gcr + xyzzy
-----trying rule: $+
-----rule matches: $: $1 $| $> "Local_localaddr" $1
-----skip subr Local_localaddr (197)
rewritten as: gcr + xyzzy $| gcr + xyzzy
-----trying rule: $+ $| $# ok
----- rule fails
-----trying rule: $+ $| $# $*
----- rule fails
-----trying rule: $+ $| $*
-----rule matches: $: $1
rewritten as: gcr + xyzzy
-----trying rule: $+
-----rule matches: $: < > $1
rewritten as: < > gcr + xyzzy
-----trying rule: < > $+
-----rule matches: $@ $1
rewritten as: gcr + xyzzy
rewrite: ruleset localaddr returns: gcr + xyzzy
gcr+xy...@badger.tharned.org... User unknown
It does preserve the +detail, but according to the trace, it has a problem
with Local_localaddr, and apparently fails because it's including the
+detail when it does the local account look-up.
Here's what my Local_localaddr ruleset looks like with the
preserve_local_plus_detail feature:
###########################################################################
### Ruleset 5 -- special rewriting after aliases have been expanded ###
###########################################################################
SLocal_localaddr
Slocaladdr=5
R$+ $: $1 $| $>"Local_localaddr" $1
R$+ $| $#ok $@ $1 no change
R$+ $| $#$* $#$2
R$+ $| $* $: $1
# prepend an empty "forward host" on the front
R$+ $: <> $1
R< > $+ $@ $1
R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host
extension
R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host
extension
R< $~[ : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
Perhaps I should file this as a bug at sendmail.org?
--
Greg