Hello,
I've been struggling with this for about a week now.
In smtpd_recipient_restrictions I have reject_unverified_recipient.
For recipient address verification I'm using Dovecot's LMTP.
Everything is working as expected when address_verify_negative_cache =
yes - unknown recipients are rejected with 550 (NOQUEUE: reject), for
known the mail is delivered.
The problem I have is when I set address_verify_negative_cache = no.
It goes like this:
- Sender connects to Postfix
+ Postfix is checking address with Dovecot
+ Dovecot responds (almost instantly) with 550 5.1.1 User doesn't exist;
status=undeliverable-but-not-cached
- Above + points are repeated as many as address_verify_poll_count times
(in my case 5 times, with default it happened 3 times)
- Postfix then replies to sender with 450 Recipient address rejected:
unverified address: Address verification in progress.
- After a while sender is trying to deliver the same e-mail again and
the same thing is happening - it is deffered with 450
- This goes on and on and on
It looks like when there is status=undeliverable-but-not-cached Postfix
is trying to verify the recipient address address_verify_poll_count
times and doesn't understand the Dovecot's 550 reply
(status=undeliverable-but-not-cached), after which it should reject
sender with 550 (NOQUEUE: reject).
Am I doing something wrong or is this some kind of a bug?
The reason I'm trying to turn off negative cache is due to the catch-all.
For example, user is trying to send an email to mailbox that doesn't
exist. The e-mail will be rejected with 550.
Then user creates a catch-all for the domain and will send e-mail to the
same address.
Due to the negative cache it again will be rejected with 550 despite the
fact there now is catch-all configured.
This is with Postfix 3.2.3 which I just upgraded from 3.1.6 (on which it
was exactly the same). I also have unverified_recipient_reject_code =
550 set.
If something else is needed, like logs or postconf, please let me know.
Don't want to spam mailing list if this is a problem between the chair
and the keyboard.
Thank you.