Provided by: courier-filter-perl_0.200+ds-2_all bug

NAME

       Courier::Filter::Module::Envelope - Message envelope filter module for the Courier::Filter
       framework

SYNOPSIS

           use Courier::Filter::Module::Envelope;

           my $module = Courier::Filter::Module::Envelope->new(
               fields      => {
                   # One or more of the following fields:
                   sender              => 'paul.greenfield@unisys.com',
                   recipient           => 'julian@mehnle.net',
                   remote_host         => '216.250.130.2',
                   remote_host_name    => qr/(^|\.)php\.net$/,
                   remote_host_helo    => qr/^[^.]*$/
               },

               # Optionally the following:
               response    => $response_text,

               logger      => $logger,
               inverse     => 0,
               trusting    => 0,
               testing     => 0,
               debugging   => 0
           );

           my $filter = Courier::Filter->new(
               ...
               modules     => [ $module ],
               ...
           );

DESCRIPTION

       This class is a filter module class for use with Courier::Filter.  It matches a message if
       one of the message's envelope fields matches the configured criteria.

   Constructor
       The following constructor is provided:

       new(%options): returns Courier::Filter::Module::Envelope
           Creates a new Envelope filter module.

           %options is a list of key/value pairs representing any of the following options:

           fields
               Required.  A reference to a hash containing the message envelope field names and
               patterns (as key/value pairs) that messages are to be matched against.  Field
               names are matched case-insensitively.  Patterns may either be simple strings (for
               exact, case-sensitive matches) or regular expression objects created by the "qr//"
               operator (for inexact, partial matches).

               The following envelope fields are supported:

               sender
                   The message's envelope sender (from the "MAIL FROM" SMTP command).

               recipient
                   Any of the message's envelope recipients (from the "RCPT TO" SMTP commands).

               remote_host
                   The IP address of the SMTP client that submitted the message.

               remote_host_name
                   The host name (gained by Courier through a DNS reverse lookup) of the SMTP
                   client that submitted the message, if available.

               remote_host_helo
                   The HELO string that the SMTP client specified, if available.

               So for instance, to match any message with a sender of
               "paul.greenfield@unisys.com", directed at "julian@mehnle.net" (possibly among
               other recipients), you could set the "fields" option as follows:

                   fields      => {
                       sender      => 'paul.greenfield@unisys.com',
                       recipient   => 'julian@mehnle.net'
                   }

           response
               A string that is to be returned literally as the match result in case of a match.
               Defaults to "Prohibited <field>: <value>".

           All options of the Courier::Filter::Module constructor are also supported.  Please see
           "new()" in Courier::Filter::Module for their descriptions.

   Instance methods
       See "Instance methods" in Courier::Filter::Module for a description of the provided
       instance methods.

SEE ALSO

       Courier::Filter::Module::Header, Courier::Filter::Module, Courier::Filter::Overview.

       For AVAILABILITY, SUPPORT, and LICENSE information, see Courier::Filter::Overview.

AUTHOR

       Julian Mehnle <julian@mehnle.net>