Hi -

You might remember this issue from last week, but here's a summary.  I
am trying to block automated vacation messages from going out through my
company's firewall.  Exchange mail indicates vacation replies by putting
the string "Out of Office AutoReply:" in the subject line, and the Unix
"vacation" program either puts the string "Vacation" in a header line
that begins with "User-Agent:", or puts the string "vacation" (little v)
in the "X-Mailer:" header line.

So if the message has one of those three indicators, and the sender's
address ends in my company's domain, and the recipient's address does
_not_ end in my company's domain, I want to block the message.

Here's what I have.

sub filter_end ($) {
    my($entity) = @_;

# ...

    my($header) = $entity->head(); # Extract a MIME::Head object from
the
                                   # MIME::Entity object '$entity'
    my $UserAgent = $header->get('User-Agent');
    my $XMailer   = $header->get('X-Mailer');

#md_graphdefang_log('VacDebug', $UserAgent, $XMailer);
    if (($UserAgent =~ /Vacation/) or
        ($XMailer   =~ /vacation/) or
        ($Subject   =~ /Out of Office AutoReply\:/i))
    {
        if (($Sender        =~ /\@([\w-]\.)*mycompany\.com>?$/i) and
            ($Recipients[0] !~ /\@([\w-]\.)*mycompany\.com>?$/i))
        {
            if ($Subject =~ /Out of Office AutoReply\:/i)
            {
                md_graphdefang_log('OOOA');
            }
            else
            {
                md_graphdefang_log('vacation',$UserAgent,$XMailer);
            }
            return action_discard();
        }
    }
}

The good news is that it catches Out of Office AutoReplies exactly
right!
The bad new is that it's not catching the User-Agent or X-Mailer things
at all.  I know how to set them, and when they get delivered the headers
are indeed there, but if I uncomment that VacDebug logging line, I see
that $UserAgent never gets set, and $XMailer gets set to "MIME-tools
5.411 (Entity 5.404)", even though the User-Agent: line is set to
"Vacation" and/or the X-Mailer" line is set to "vacation".

I'll admit that I have no idea what I'm doing when it comes to packages
like MIME::Entity.  But having the input and the output be the same as
each other but not the same as what's going on inside this code fragment
is baffling me.  Please help!


_______________________________________________
Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list
[email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang

Reply via email to