[Mimedefang] How to count recipients in filter_recipient

Benoit Panizzon benoit.panizzon at imp.ch
Tue Apr 16 08:12:02 EDT 2013

Hi Dale

> In this case, we merely
>   main::delete_recipient($recipient_A);
> then
>   main::action_accept()
> for the rest of the recipients.

This is what we don't want to do. Immagine it is a false positive.
The Maillogs of the sender, any maybe even an MDN Messages confirm, the email 
has been received by the server. So that email just disappears. This is what 
we want to avoid.

> You cant tempfail individual recipients once you peek at the message
> and see that it is spam.  By the time you see the message, you've already
> accepted the recipients.

Yes, but I know what spam action (reject or accept) the individual recipient 
has. So I can first handel alle the recipients who want to reject spam and 
tempfail all the others, and the vice versa. I do not need to know if the 
email will be handled as spam at that point. I just make sure, that if it will 
be handled as spam, I only have recipients that want spam rejected.

> Different mimedefang-milter processes might handle the same message.
> One milter process could handle the relay while a different one handles
> the sender.  In fact, different processes could handle different recipients
> of the same message.  This makes persistent variables like $rcpt_count
> difficult to implement.

After some more Googleing I think I found a solution.
For each smtp session, MIMEDefang uses a different spool directory and CWD's 
to that directory.
So I am now writing the recipient and spam settings to a file in the actual 
CWD and on each recipient I can get the count and what kind of recipients I 
accept from that file.

Kind regards

Benoit Panizzon
I m p r o W a r e   A G    -    

Zurlindenstrasse 29             Tel  +41 61 826 93 07
CH-4133 Pratteln                Fax  +41 61 826 93 02
Schweiz                         Web  http://www.imp.ch

More information about the MIMEDefang mailing list