> First, if filter() is called on a message, is it possible that
> filter_multipart() will also be called?
> I have moved the spamassassin checking into the filter() and
> filter_multipart() sections,
Don't do that.
filter() is called once for each leaf MIME-part, and filter_multipart()
is called once for each non-leaf MIME part.
Keep your SA tests in filter_begin or filter_end.
> Next, I have a number of rules in the different filter subs that
> cause message rejection/bounces. I found quickly that the message
> for action_bounce() must be fairly short. What I really want to
> do is to include more information in the bounced message, so that
> legitimate users can see why the message was rejected.
MIMEDefang does not currently support multiline replies (it's on the
TODO list.) There's also no guarantee end-users will see the text;
some MTAs eat it.
> So, I figured I could use the action_notify_sender() to do this,
Don't do that. You'll be blacklisted for generating backscatter within
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID. You may ignore it.