Daniel Ry?link: > Hello! > > First of all, I apologize if my question is somewhat flawed formally or > semantically (it may be excessively stupid without me realizing, for > example), I have searched for the answer myself without success, and > only after failing, I am submitting my problem here as a last resort. > > My question is this - transport table in Postfix allows matching by > address (user@domain), by domain itself, or the * wildcard can be used, > but what if I want to match mail from every domain that have a specific > server (ip) in their MX record?
That would require major architectural changes. Currently, the transport map client knows nothing about SMTP or DNS, and lookups are expected to be O(milliseconds). So even if the transport map was replaced with a tcp: or socketmap: table that talks to a local service that does understand DNS, performance would be poor. It would require a lot of caching (memcache: on top of tcp: or socketmap:). What might be possible is to extend smtp_dns_reply_filter support with a REPLACE action: if the DNS response contains a problematic domain name or IP address, replace it with a less problematic destination. It's not perfect, but it would not require a ton of new code. Perhaps some DNS resolver already has 'rewriting' functionality built in. Then, the problem can be solved outside of Postfix. Wietse