Hi, I'm configuring Postfix to relay mail via a smarthost, and I need to rewrite the sender address in order for the smarthost to accept the mail (and not reject it as 'relaying'). I'm using generic mapping to do this, and it works correctly on two of my systems (Debian Sid, running Postfix 3.3.2), but not on a third (Debian Stretch, running 3.1.8). I've tried all sorts of adjustments and debugging, and I'm at my wits' end. Below is the configuration and logging from the broken system:
>From /var/log/mail.log : Jan 2 14:05:55 alice postfix/pickup[17200]: D2324AC400BA: uid=0 from=<root> Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: name_mask: all Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: inet_addr_local: configured 2 IPv4 addresses Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: inet_addr_local: configured 5 IPv6 addresses Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: process generation: 20 (20) Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: connection established fd 128 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: rewrite Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: rule Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: rule Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: local Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: root Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: `local' `root' -> `root@alice.villette' Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr address = root@alice.villette Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: rewrite Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: rule Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: rule Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: local Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: cele...@gmail.com Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: `local' `cele...@gmail.com' -> `cele...@gmail.com' Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr address = cele...@gmail.com Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:55 alice postfix/cleanup[19935]: D2324AC400BA: message-id=<20190102190555.D2324AC400BA@alice.villette> Jan 2 14:05:55 alice postfix/qmgr[17048]: D2324AC400BA: from=<root@alice.villette>, size=258, nrcpt=1 (queue active) Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: connection established fd 129 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: resolve Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: sender Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: sender Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: root@alice.villette Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute value: cele...@gmail.com Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: match_string: mydestination: gmail.com ~? alice.villette Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: match_string: mydestination: gmail.com ~? alice.villette Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: match_string: mydestination: gmail.com ~? localhost.villette Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: match_string: mydestination: gmail.com ~? localhost Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: match_list_match: gmail.com: no match Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: `root@alice.villette' -> `cele...@gmail.com' -> (`smtp' `[smtp.zoho.com]:465' `cele...@gmail.com' `4096') Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr transport = smtp Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr nexthop = [smtp.zoho.com]:465 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr recipient = cele...@gmail.com Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: send attr flags = 4096 Jan 2 14:05:55 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: connection established fd 130 Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: input attribute value: rewrite Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: rule Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: input attribute name: rule Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: input attribute value: local Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: input attribute value: aaaaa...@zoho.com Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: `local' `aaaaa...@zoho.com' -> `aaaaa...@zoho.com' Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: send attr address = aaaaa...@zoho.com Jan 2 14:05:56 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:57 alice postfix/smtp[19937]: D2324AC400BA: to=<cele...@gmail.com>, relay=smtp.zoho.com[204.141.43.189]:465, delay=1.4, delays=0.11/0.03/0.88/0.4, dsn=5.0.0, status=bounced (host smtp.zoho.com[204.141.43.189] said: 553 Relaying disallowed as @ (in reply to end of DATA command)) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: rewrite Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: rule Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: rule Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: local Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: "" Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: `local' `""' -> `""' Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr address = "" Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: rewrite Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: rule Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: rule Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: local Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: root@alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: `local' `root@alice.villette' -> `root@alice.villette' Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr address = root@alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: rewrite Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: rule Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: rule Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: local Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: MAILER-DAEMON Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: `local' `MAILER-DAEMON' -> `MAILER-DAEMON@alice.villette' Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr address = MAILER-DAEMON@alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: rewrite Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: rule Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: rule Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: local Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: root@alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: `local' `root@alice.villette' -> `root@alice.villette' Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr address = root@alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:57 alice postfix/cleanup[19935]: 40739AC400BB: message-id=<20190102190557.40739AC400BB@alice.villette> Jan 2 14:05:57 alice postfix/bounce[19939]: D2324AC400BA: sender non-delivery notification: 40739AC400BB Jan 2 14:05:57 alice postfix/qmgr[17048]: 40739AC400BB: from=<>, size=2235, nrcpt=1 (queue active) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: request Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: resolve Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: sender Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: sender Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: (end) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: address Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute value: root@alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: rewrite socket: wanted attribute: (list terminator) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: input attribute name: (end) Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: match_string: mydestination: alice.villette ~? alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: `' -> `root@alice.villette' -> (`local' `alice.villette' `root@alice.villette' `256') Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr flags = 0 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr transport = local Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr nexthop = alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr recipient = root@alice.villette Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: send attr flags = 256 Jan 2 14:05:57 alice postfix/trivial-rewrite[19936]: master_notify: status 1 Jan 2 14:05:57 alice postfix/qmgr[17048]: D2324AC400BA: removed Jan 2 14:05:57 alice postfix/local[19940]: 40739AC400BB: to=<root@alice.villette>, relay=local, delay=0.09, delays=0.04/0.01/0/0.04, dsn=2.0.0, status=sent (delivered to mailbox) Jan 2 14:05:57 alice postfix/qmgr[17048]: 40739AC400BB: removed Jan 2 14:06:01 alice postfix/trivial-rewrite[19936]: connection closed fd 130 Jan 2 14:06:02 alice postfix/trivial-rewrite[19936]: connection closed fd 128 Jan 2 14:06:02 alice postfix/trivial-rewrite[19936]: connection closed fd 129 Jan 2 14:07:42 alice postfix/trivial-rewrite[19936]: idle timeout -- exiting # postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no compatibility_level = 2 inet_interfaces = all inet_protocols = all mailbox_size_limit = 0 mydestination = $myhostname, alice.villette, localhost.villette, localhost myhostname = alice.villette mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + relayhost = [smtp.zoho.com]:465 smtp_generic_maps = hash:/etc/postfix/generic smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/zoho_passwd smtp_sasl_security_options = smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtp_tls_security_level = verify smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_tls_wrappermode = yes smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes # postmap -s generic @alice.villette aaaaa...@zoho.com # postconf -Mf smtp inet n - y - - smtpd pickup unix n - y 60 1 pickup cleanup unix n - y - 0 cleanup qmgr unix n - n 300 1 qmgr tlsmgr unix - - y 1000? 1 tlsmgr rewrite unix - - y - - trivial-rewrite -v bounce unix - - y - 0 bounce defer unix - - y - 0 bounce trace unix - - y - 0 bounce verify unix - - y - 1 verify flush unix n - y 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - y - - smtp relay unix - - y - - smtp showq unix n - y - - showq error unix - - y - - error retry unix - - y - - error discard unix - - y - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - y - - lmtp anvil unix - - y - 1 anvil scache unix - - y - 1 scache maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} Celejar