NAME
Test::Exim4::Routing - test how exim4 routes mails
SYNOPSIS
use strict;
use Test::More;
use Test::Exim4::Routing;
plan tests => 18;
# Set a custom mailer program
#$Test::Exim4::Routing::mailer = '/opt/usr/sbin/exim4';
config_ok;
routes_ok 'postmaster2@test.internal';
# Check that the router names resolve as we want them:
routes_as 'postmaster2@test.internal', 'virtual_local_mailbox';
routes_as 'outbound@example.com', 'dnslookup';
routes_as 'corion', 'virtual_local_mailbox'; # because ~corion/.forward contains corion@corion.net
routes_as 'corion@corion.net', 'virtual_local_mailbox';
# Check our local domains
for my $domain (qw( corion.net datenzoo.de )) {
routes_as "postmaster\@$domain", 'virtual_local_mailbox';
};
# Check that our exim4 blacklists work:
discards_ok 'vacation@corion.net';
discards_ok 'michael.traven@corion.net';
undeliverable_ok 'does-not-exist@corion.net';
NOTES
This module uses exim4
to verify how exim4
will route mails. This is less a module to test your program and more a module to test your system configuration, especially after changes to the mail configuration.
No mails are sent by this module, as exim4
can tell us the routing of mails without actually sending a mail. This means that we don't need to clean up after testing the routing, but it also means that other problems, like not enough diskspace or mail directories that don't exist will not be detected by this test.
You will need a working copy of exim4
on the machine running these tests.
So far, the module only checks against the default config file and does not allow specifying a different configuration file except in the config_ok
check.
EXPORTED TESTS
config_ok $config_file
Checks that exim4
considers the configuration file as syntactically valid. If $config_file
is not given, the default config file of exim4
is used.
routes_ok $address, $name
Checks that exim4
knows how to route the email address $address
.
routes_as $address, $rule, $name
Checks that exim4
routes $address
using the exim4
rule named $rule
.
discards_ok $address, $name
Checks that exim4
discards mails with $address
as a recipient.
undeliverable_ok $address, $name
Checks that exim4
rejects mails with $address
as a recipient as undeliverable.
AUTHOR
Max Maischein corion@cpan.org
COPYRIGHT (c)
Copyright 2008-2009 by Max Maischein corion@cpan.org
.
LICENSE
This module is released under the same terms as Perl itself.