Hello,
I wrote a policy server (that do RBL checks and dynamically disable slow RBL
servers). I supposed the right place is the smptd_client_restrictions:
smtpd_client_restrictions =
check_policy_service unix:/opt/mailfilter/client_restrictions
smtpd_helo_required = yes
smtpd_recipient_restrictions =
reject_invalid_hostname,
reject_unauth_pipelining,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
permit_sasl_authenticated,
permit_mynetworks
Unfortunatelly it doesn't work as expected. The policy is not executed when a
client connects, but on each RCPT TO. It behaves the same way as if the
policy was under the smtpd_recipient_restrictions. In my case, it means that
the RBL checks will be done again for each RCPT TO...
I tried to put the check_policy_service under different restrictions
(smtpd_helo_restrictions, smtpd_sender_restrictions), but with the same
result - it worked, but as if it was in the RCPT state.
smtpd_data_restrictions is the only state where it works well, so the
protocol_state=DATA.
Is this a bug or a feature?
Thank you for help,
Jan Molic