> > Another thing the OP has missed is what Noel has demonstrated above, > that the default smtpd_delay_reject means smtpd_sender_restrictions > won't be evaluated until the RCPT TO: command. >
Bingo! I added smtpd_delay_reject=no to force the error reporting right after MAIL FROM command, which solved my puzzle: [r...@rhel5 postfix]# tail main.cf # readme_directory: The location of the Postfix README files. # readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES smtpd_sender_restrictions = reject_non_fqdn_sender non_fqdn_reject_code = 501 strict_rfc821_envelopes = yes append_dot_mydomain = no append_at_myorigin = no smtpd_delay_reject = no [r...@rhel5 postfix]# postfix reload postfix/postfix-script: refreshing the Postfix mail system [r...@rhel5 postfix]# !telnet telnet localhost smtp Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 formail.localdomain ESMTP Postfix helo me 250 formail.localdomain mail from:<abc> 501 5.5.2 <abc>: Sender address rejected: need fully-qualified address Thanks a lot, Mingliang