Message envelope filter module for the courier::filter framework
use Courier::Filter::Module::Envelope; my $module = Courier::Filter::Module::Envelope->new( fields => { # One or more of the following fields: sender => '[email protected]', recipient => '[email protected]', 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 ], ... );
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.
The following constructor is provided:
Creates a new Envelope filter module. %options is a list of key/value pairs representing any of the following options:
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 \*(C`qr//\*(C' operator (for inexact, partial matches). The following envelope fields are supported:
The message's envelope sender (from the \*(L"\s-1MAIL\s0 \s-1FROM\s0\*(R" \s-1SMTP\s0 command).
Any of the message's envelope recipients (from the \*(L"\s-1RCPT\s0 \s-1TO\s0\*(R" \s-1SMTP\s0 commands).
The \s-1IP\s0 address of the \s-1SMTP\s0 client that submitted the message.
The host name (gained by Courier through a \s-1DNS\s0 reverse lookup) of the \s-1SMTP\s0 client that submitted the message, if available.
The \s-1HELO\s0 string that the \s-1SMTP\s0 client specified, if available.
So for instance, to match any message with a sender of \*(C`[email protected]\*(C', directed at \*(C`[email protected]\*(C' (possibly among other recipients), you could set the \*(C`fields\*(C' option as follows: fields => { sender => '[email protected]', recipient => '[email protected]' }
A string that is to be returned literally as the match result in case of a match. Defaults to \*(L"Prohibited <field>: <value>\*(R".
All options of the Courier::Filter::Module constructor are also supported. Please see \*(L"new()\*(R" in Courier::Filter::Module for their descriptions.
See \*(L"Instance methods\*(R" in Courier::Filter::Module for a description of the provided instance methods.
Courier::Filter::Module::Header, Courier::Filter::Module, Courier::Filter::Overview.
For \s-1AVAILABILITY\s0, \s-1SUPPORT\s0, and \s-1LICENSE\s0 information, see Courier::Filter::Overview.
Julian Mehnle <[email protected]>