I'm new to OpenSMTPd (on OpenBSD 7.0-release) and when I started looking into filters I came up with some questions that the smtpd.conf manpage doesn't seem to answer.
- for 'filter ... proc ...' and 'filter ... proc-exec ...' where in the processing of the message is the filter invoked and how does it interact with OpenSMTPd (what info is it given, what info does it return, etc; from the DKIM example it's evidently able to add a header to the message)? [How it interacts may be something only filter developers really care about, but when it's invoked is relevant for everyone.] - for decision 'rewrite value' is 'value' a fixed string, a string that may include references to matches in a regex (if a condition was '... regex <table>'; this would probably require that there be exactly one condition with 'regex'), or what? Presumably the rewritten value affects only the envelope(s), not the headers in the message itself. [The need for regex references occurred to me because I was thinking about standardizing the domain part of MAIL FROM and RCPT TO, eliminating mention of specific hosts and leaving just my domain's name, which would require getting the username from the regex match.] - in the phase definitions I originally read 'data' as meaning immediately after the DATA command is received and 'commit' as after the '.' that terminates the message body, but the comment after the list of decisions that junking must happen 'before a message is committed' makes me think that was wrong. What is actually meant? - in the list of decisions 'session or transaction' is stated without making it clear what the difference is, and I don't see a clear statement of this anywhere else. What exactly is the difference? A nit: in the phase definition for 'commit' there's an extra 'is'. BTW, despite my questions I really like OpenSMTPd. Many thanks for creating it. Dave -- Dave Anderson <d...@daveanderson.com>