Wietse Venema:
> Wietse Venema:
> > The implicit "unknown recipient" test at the end is not part of
> > smtpd_recipient_restrictions, and this implicit test currently does
> > not play along with any defer_if features requested from within
> > smtpd_recipient_restrictions.
> 
> I finally had some time to check this. It seems that "defer_if_reject"
> works as usual. The implicit "reject_unlisted_recipient" at the end
> of smtpd_recipient_restrictions will defer mail thanks to massive
> code reuse inside Postfix:
> 
>     % postconf smtpd_recipient_restrictions
>     smtpd_recipient_restrictions = reject_unauth_destination,defer_if_reject
>     % postfix reload
>     postfix/postfix-script: refreshing the Postfix mail system
>     % telnet 127.0.0.1 smtp
>     Trying 127.0.0.1...
>     Connected to localhost.
>     Escape character is '^]'.
>     220 bristle.watson.ibm.com ESMTP Postfix
>     mail from:wietse
>     250 2.1.0 Ok
>     rcpt to:AKJDK@localhost
>     450 4.7.0 <AKJDK@localhost>: Recipient address rejected: defer_if_reject 
> requested
> 
> I get the same result by adding an explicit "reject_unlisted_recipient"
> after "defer_if_reject" in the example above.

To soft-reject unknown recipients in selected domains, in mail from
clients outside the local network, request defer_if_reject at the end
of smtpd_recipient_restrictions:

/etc/postfix/main.cf:
    smtpd_recipient_restrictions =
        permit_mynetworks
        ...
        reject_unauth_destination
        ...
        check_recipient_access hash:/etc/postfix/final_rcpt_access

/etc/postfix/final_rcpt_access:
    example.com defer_if_reject

This is approximately the solution that Rob0 proposed.

You could drop "permit_mynetworks" when this service is not
used for original submissions.

        Wietse

Reply via email to