| Courier-Filter documentation | view source | Contained in the Courier-Filter distribution. |
Courier::Filter::Module::FakeDate - Fake "Date:" message header filter module for the Courier::Filter framework
use Courier::Filter::Module::FakeDate;
my $module = Courier::Filter::Module::Header->new(
forward_tolerance => {
# years, months, weeks, days, hours, minutes, seconds
hours => 2
},
backward_tolerance => {
# years, months, weeks, days, hours, minutes, seconds
days => 5
},
ignore_unparseable => 0,
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 it has a Date header field that lies too far in the future or the
past, relative to the local system's time. If the message has a Resent-Date
header field (see RFC 2822, 3.6.6), that one is examined instead, because the
message could simply be an old one that has recently been re-sent, which is
perfectly legitimate behavior.
In the case of a match, the response tells the sender that their Date header
is implausible and that they should check their clock.
Note: Times in different time zones are compared correctly.
Note: When using this filter module, it is essential that the local system's own clock is set correctly, or there will be an increased risk of legitimate messages getting rejected.
The following constructor is provided:
Creates a new FakeDate filter module.
%options is a list of key/value pairs representing any of the following options:
The maximum durations by which a message's Date or Resent-Date header may
diverge into the future and the past, respectively, from the local system's
time. Each duration must be specified as a hash-ref containing one or more
time units and their respective quantity/ies, just as specified by
DateTime::Duration. forward_tolerance defaults to 2 hours.
backward_tolerance defaults to 5 days to account for transmission
delays.
For example:
forward_tolerance => { hours => 4 },
backward_tolerance => { days => 1, hours => 12 }
A boolean value controlling whether messages whose Date or Resent-Date
header does not loosely conform to RFCs 822 or 2822 should be ignored (true)
or matched (false). Defaults to false.
All options of the Courier::Filter::Module constructor are also supported. Please see new in Courier::Filter::Module for their descriptions.
See "Instance methods" in Courier::Filter::Module for a description of the provided instance methods.
Courier::Filter::Module, Courier::Filter::Overview.
For AVAILABILITY, SUPPORT, and LICENSE information, see Courier::Filter::Overview.
Julian Mehnle <julian@mehnle.net>
| Courier-Filter documentation | view source | Contained in the Courier-Filter distribution. |