On Tue, May 13, 2014 at 02:15:48PM -0500, deoren wrote: > If I send an email to 'root' and $myorgin is set to $mydomain > (which is also set properly), shouldn't 'root' be qualified as > root@$mydomain (i.e., r...@example.com)?
Correct, see: http://www.postfix.org/postconf.5.html#append_at_myorigin > Here's my Postfix conf: > > root@sparky:~# postconf -n > mydomain = example.com > myorigin = $mydomain > recipient_canonical_classes = envelope_recipient > recipient_canonical_maps = hash:/etc/postfix/pfix-no-srs.cf, > tcp:127.0.0.1:10004, > sender_canonical_classes = envelope_sender > sender_canonical_maps = hash:/etc/postfix/pfix-no-srs.cf, > tcp:127.0.0.1:10003, But here you seem to be using canonical(5) rewriting. > virtual_alias_domains = example.com > virtual_alias_maps = hash:/etc/postfix/virtual.common.conf, > hash:/etc/postfix/virtual.example.com.conf, > > and both local and virtual aliases: > > grep -i 'root' /etc/aliases /etc/postfix/*.conf | grep -v '#' > > postmaster: root example.com is a virtual alias domain. You're aliasing everything here to a virtual alias, r...@example.com ... > adm: root > bin: root > daemon: root > exim: root > lp: root > mail: root > named: root > nobody: root > postfix: root > operator: root > ftp: root > hostmaster: root > noc: root > security: root > usenet: root > uucp: root > webmaster: root > > > /etc/postfix/sender_access.conf:r...@example.com OK > /etc/postfix/sender_access.conf:r...@example.net OK [ These all look pointless, why do you need them? ] > /etc/postfix/virtual.common.conf:MAILER-DAEMON root > /etc/postfix/virtual.common.conf:postmaster root > /etc/postfix/virtual.common.conf:adm root > /etc/postfix/virtual.common.conf:bin root > /etc/postfix/virtual.common.conf:daemon root > /etc/postfix/virtual.common.conf:exim root > /etc/postfix/virtual.common.conf:lp root > /etc/postfix/virtual.common.conf:mail root > /etc/postfix/virtual.common.conf:named root > /etc/postfix/virtual.common.conf:nobody root > /etc/postfix/virtual.common.conf:postfix root > /etc/postfix/virtual.common.conf:operator root > /etc/postfix/virtual.common.conf:abuse root > /etc/postfix/virtual.common.conf:ftp root > /etc/postfix/virtual.common.conf:hostmaster root > /etc/postfix/virtual.common.conf:news root > /etc/postfix/virtual.common.conf:noc root > /etc/postfix/virtual.common.conf:security root > /etc/postfix/virtual.common.conf:usenet root > /etc/postfix/virtual.common.conf:uucp root > /etc/postfix/virtual.common.conf:webmaster root > /etc/postfix/virtual.common.conf:www root > /etc/postfix/virtual.common.conf:scripts root > > /etc/postfix/virtual.example.com.conf:r...@example.com m...@example.net ... And indeed your virtual alias address exists. > Here are two examples of sending mail to an unqualified 'root' --------------------------^ faulty testing of > address. One if via the mail command and the other is through > cron handling uncaught output from a job. I would expect that > both would yield the same results, but that's not the case. > > * I send an email using the 'mail' command (local user, doesn't > seem to matter which user it is): > > echo "Testing" | mail -s "Test email to unqualified root address" root > > and it gets delivered to the local 'root' system account > > May 13 12:54:01 sparky postfix/pickup[24601]: 98354214B7: uid=0 from=<root> > May 13 12:54:01 sparky postfix/cleanup[24668]: 98354214B7: > message-id=<20140513175401.9835421...@sparky.example.com> > May 13 12:54:01 sparky postfix/qmgr[24600]: 98354214B7: > from=<r...@example.com>, size=388, nrcpt=1 (queue active) > May 13 12:54:01 sparky postfix/local[24673]: 98354214B7: > to=<r...@sparky.example.com>, relay=local, delay=0.1, delays=0.09/0.01/0/0, > dsn=2.0.0, status=sent (delivered to mailbox) There is no "orig-to=" here. No rewriting took place. Your MUA apparently converted the "root" recipient into "r...@sparky.example.com" before Postfix saw it. > May 13 12:54:01 sparky postfix/qmgr[24600]: 98354214B7: removed > > I remember reading that if you don't have $myorigin specified then > $myhostname will be used as the default value to qualify addresses. > That appears to be what's happening here? Nope, check your mail(1) manual. > * A cron job has output which isn't piped to a file or redirected > somewhere and /etc/crontab has 'MAILTO=root' defined. > > The mail from cron appears to be subject to virtual aliasing (at > least the destination address listed in > /etc/postfix/virtual.example.com.conf is used): > > May 13 12:54:01 sparky postfix/pickup[24601]: 7218221551: uid=0 from=<root> > May 13 12:54:01 sparky postfix/cleanup[24668]: 7218221551: > message-id=<20140513175401.7218221...@sparky.example.com> > May 13 12:54:01 sparky postfix/qmgr[24600]: 7218221551: > from=<r...@example.com>, size=782, nrcpt=1 (queue active) > May 13 12:54:02 sparky postfix/smtp[24672]: 7218221551: to=<m...@example.net>, > orig_to=<root>, relay=rusty.example.net[192.168.3.5]:25, delay=0.92, ^^^^^^^^^^^^^^ Yes, Postfix rewrote this in virtual_alias_maps. > delays=0.18/0.01/0.61/0.12, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as > 43ACE810A) > http://www.fredshack.com/docs/postfix.html Who's this? Just stick with the documentation you got with your own Postfix, or use www.postfix.org. -- http://rob0.nodns4.us/ Offlist GMX mail is seen only if "/dev/rob0" is in the Subject: