← Documentation Index

NAME

Mailmunge::Test::SMTPForward - Peform an SMTP callback to see if another SMTP server would accept a recipient.

ABSTRACT

This class performs a mini SMTP session on a back-end SMTP server to see if that server would accept a recipient. It uses $ctx->connecting_name as the HELO argument and $ctx->sender as the MAIL From: argument.

Mailmunge::Test::SMTPForward is a subclass of Mailmunge::Test.

PREREQUISITES

This class requires IO::Socket::SSL version 1.994 or greater. Some Linux distros such as CentOS 7 ship with an older version of IO::Socket::SSL; on those distros, you will need to install a newer version of IO::Socket::SSL from CPAN.

SYNOPSIS

    package MyFilter;
    use Mailmunge::Test::SMTPForward;

    sub filter_recipient {
        my ($self, $ctx) = @_;
        my $forwarder = Mailmunge::Test::SMTPForward->new($self);
        my $resp = $forwarder->check_against_smtp_server($ctx,
                   $ctx->recipients->[0],
                   'backend.example.com');
        return $resp unless $resp->is_success();
        # ... rest of filter_recipient
    }

CLASS METHOD

Mailmunge::Test::SMTPForward->new($filter)

Constructs a new Mailmunge::Test::SMTPForward object and stores a copy of $filter in it.

INSTANCE METHOD

check_against_smtp_server($ctx, $recipient, $server [, $port]);

Run a mini-SMTP session against $server on port $port (default is port 25) to see if it would accept the recipient $recipient.

The return value is a Mailmunge::Response object whose value reflects the response of the back-end SMTP server.

AUTHOR

Dianne Skoll <dianne@skollsoft.com>

LICENSE

This code is licensed under the terms of the GNU General Public License, version 2.

Copyright © 2021 Skoll Software Consulting