Hello I'm writing an SPF milter application with SRS support, making use of milter's CHGFROM to rewrite the MAIL FROM address.
The application has to handle SRS in outgoing messages in 3 situations: 1) An MTA user sends a message (no redirect); 2) The MTA receives a message whose destination is translated via virtual_alias_maps to a non-local email address; 3) The MTA receives a message that is delivered locally, but the user sets up a redirection (eg. using Sieve) to a non-local address. Case 3 can be dealt with by using a separate MTA and configuring SRS to use a pre-configured domain for the rewriting, or, say, using the "j" milter macro. This is also what should be done for case 2 too, but in that situation it's not easy to differentiate it from outgoing messages from case 1. In case 1, I would like to use SRS with the same domain as the original sender. In this case, the idea is not to change the domain to make SPF work, since this is not a redirect, but to have a signed MAIL FROM which can be reversed in case of bounces; that way I would be able to reject fake bounce messages sent by spammers. Differentiating between cases 1 and 2 would require a list of domains known to the MTA, which of course I could keep in a file or a database, but Postfix already has this information, and I would like to avoid "duplicating" it. So (finally) my question is: is there a standard way to query Postfix about this information from an external program (for exemple, by communicating via one of the sockets in the "private" directory)? Or would the best solution be to basically incorporate the "postmap" code in my application? Other solutions and ideas are welcome. Thanks, Andre
