[Mimedefang] exceptions based on recipient?

kamal kamalnee at iitk.ac.in
Fri Jan 30 01:48:07 EST 2004


As someone mentioned earlier, once mail data has been received, SMTP 
does not allow to reject for some recipients and accept for others. What 
you have to do is:
1.Amongst the recipients, check which are exempted
2. If all are exempted, accept message and deliver as it is
3. If none are exempted, do normal filtering
4. If some are exempted, others are not, resend the original message to 
exempted ones, delete them from "this" message, and do normal filtering.

All this, you can do from filter_end

Here is a part of code that does this. If we reject the original mail, 
we tell the list of recipients for which it was rejected as a part of 
the error string.

foreach $d_recip (@Recipients) {
            @triple=@{$RecipientMailers{$d_recip}};
            if($triple[0] eq "local"){
                my $bool=0;
                foreach $rowref (@arr){
                    if(@{$rowref}[0] eq $triple[2]){
                        $bool=1;
                        push(@exem,$d_recip);
                        last;
                    }
                }
                #if original mail is going to be rejected, calculate the 
list of recipients for which it is going to be rejected
                if($bool==0 && defined($rejected)){
                    if($rejected){
                        $rejected.=", ";
                    }
                    $rejected.=$d_recip;
                }
            }
        }
    }
    if(@exem){
        if(resend_message(@exem)){
            foreach $d_recip (@exem){
                delete_recipient($d_recip);
            }
        } else {
            md_syslog("warning","resend_message failed");
            #accept the message
            return 0;
        }
    }


Murat Isik wrote:

>Hello,
>
>I am relatively new to mimedefang and perl but I loved using it for
>attachment filtering and so on. However I have a problem about which all my
>googleing turned out to be useless. I want to filter attachments based on
>recipients. It is like if I have ten mail accounts, for nine of them
>action_quarantine should work but for the tenth should not. Then I found
>some sites with advanced mimedefang filters and got some ideas from them and
>tried to accomplish this:
>  
>



More information about the MIMEDefang mailing list