b00f4c7793
which will merge into the main branch fairly easily
51 lines
1.3 KiB
Perl
51 lines
1.3 KiB
Perl
#!perl -w
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Qpsmtpd::Constants;
|
|
|
|
my $r;
|
|
|
|
sub register_tests {
|
|
my $self = shift;
|
|
|
|
eval 'use Mail::SPF';
|
|
return if $@;
|
|
|
|
$self->register_test('test_is_relayclient', 3);
|
|
$self->register_test('test_is_special_recipient', 5);
|
|
}
|
|
|
|
sub test_is_relayclient {
|
|
my $self = shift;
|
|
|
|
my $transaction = $self->qp->transaction;
|
|
ok( ! $self->is_relayclient( $transaction ),
|
|
"sender_permitted_from, is_relayclient -");
|
|
|
|
$self->qp->connection->relay_client(1);
|
|
ok( $self->is_relayclient( $transaction ),
|
|
"sender_permitted_from, is_relayclient +");
|
|
|
|
$self->qp->connection->relay_client(0);
|
|
$self->qp->connection->remote_ip('192.168.7.5');
|
|
my $client_ip = $self->qp->connection->remote_ip;
|
|
ok( $client_ip, "sender_permitted_from, relayclients ($client_ip)");
|
|
};
|
|
|
|
sub test_is_special_recipient {
|
|
my $self = shift;
|
|
|
|
my $transaction = $self->qp->transaction;
|
|
my $address = Qpsmtpd::Address->new('user@example.com');
|
|
|
|
ok( ! $self->is_special_recipient( $address ), "is_special_recipient -");
|
|
|
|
foreach my $user ( qw/ postmaster abuse mailer-daemon root / ) {
|
|
$address = Qpsmtpd::Address->new("$user\@example.com");
|
|
ok( $self->is_special_recipient( $address ), "is_special_recipient ($user)");
|
|
};
|
|
};
|
|
|