Manpage logo

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

NAME  ABSTRACT  PREREQUISITES  SYNOPSIS  CLASS METHOD  Mailmunge::Test::SMTPForward−>new($filter)  INSTANCE METHODS  check_against_smtp_server($ctx, $recipient, $server [, $port]);  log_smtp($who, $line)  AUTHOR  LICENSE 

NAME

Mailmunge::Test::SMTPForward − Perform 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 METHODS

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.

log_smtp($who, $line)

This method does nothing, but is available to be overridden in a derived class. It is called for each line in the SMTP conversation. For lines sent from the client to the server, $who is set to "C" and for lines received from the server, $who is set to "S". The line itself is in $line, including any trailing "\r\n" characters.

AUTHOR

Dianne Skoll <[email protected]>

LICENSE

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


Updated 2026-06-01 - jenkler.se | uex.se