I am looking to understand if I misinterpreted the documentation or if this is an issue with postfix.
main.cf smtpd_reject_unlisted_recipient = no smtpd_data_restrictions = reject_unlisted_recipient My intention is to prevent postfix from rejecting invalid recipients at the RCPT command and only reject them at the DATA command. (Because I want a milter to run before mail is rejected for unknown recipients.) The reason I set smtpd_reject_unlisted_recipient=no is because when set to yes it will reject at the RCPT command before milters run. I then assumed smtpd_data_restrictions=reject_unlisted_recipient would reject invalid recipients at the DATA stage. I created an alias (virtual_alias_maps) that points to a non-existent user (virtual_mailbox_maps) on the same valid domain (virtual_mailbox_domains). Just to be clear, a valid user would be ad...@example.com, the alias created was al...@example.com -> f...@example.com. There is no valid user f...@example.com in virtual_mailbox_maps. Postfix accepted delivery of the email sent to al...@example.com and handed it off the LMTP for f...@example.com. LMTP rejected delivery to the non-existent address causing postfix to then send out a backscatter bounce message exposing the alias target f...@examle.com to the original sender. I assumed smtpd_data_restrictions=reject_unlisted_recipient would have caught this and rejected the mail before sending it to LMTP. Was it supposed to? Or does reject_unlisted_recipient get disabled completely when smtpd_reject_unlisted_recipient=no? Is it possible to have the behavior I am expecting?