On Tue, Nov 04, 2025 at 09:57:42AM -0500, Wietse Venema via Postfix-users wrote:
> > I missed something. The SMTP server looks at the trivial-rewrite
> > reply, and rejects an address if it resolves to the error(8) transport.
>
> Actualy it does have code that also special-cases the retry: transport.
>
> # postconf transport_maps='static:{retry:4.1.2 Migration in progress}'
> # postfix reload
> # telnet localhost smtp
> Trying ::1...
> telnet: connect to address ::1: Connection refused
> Trying 127.0.0.1...
> Connected to localhost.
> Escape character is '^]'.
> 220 wzv.porcupine.org ESMTP Postfix
> mail from:<>
> 250 2.1.0 Ok
> rcpt to:<any@where>
> 450 4.1.2 <any@where>: Recipient address rejected: Migration in progress
Unfortunately for the OP, that check is unavoidably imprecise, The
Postfix SMTP server validates the original recipient address provided by
the SMTP client, which it DOES NOT subject to canonical, virtual alias
or other rewriting, beyond checking whether the input address is matched
by one of those tables.
If the address is subject to rewriting, any transport lookup on the
original address is not necessarily applicable to the ultimate rewritten
address(es). Therefore the "error" and "retry" transport checks don't
apply in that case.
It is very likely that the OP is testing with an address that is subject
to rewriting. There's not much smtpd(8) can do about that. The
original address would need an access(5) table match:
[email protected] 450 4.2.1 Migration in progress
--
Viktor. 🇺🇦 Слава Україні!
_______________________________________________
Postfix-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]