Test::Mailmunge::SMTPServer − run a fake SMTP server for unit−test purposes
Test::Mailmunge::SMTPServer runs a fake SMTP server. It is used (for example) to test Mailmunge::Test::SMTPForward
use
Test::Mailmunge::SMTPServer;
my $server = Test::Mailmunge::SMTPServer−>new();
my $port = $server−>{port};
# Now interact with server on 127.0.0.1 at port $port
# DON'T FORGET to stop the server when done!
$server−>stop_server();
Constructs and
starts a new test SMTP server. Supply callbacks to tell the
server how to respond to SMTP client commands. The possible
callbacks are:
connect => \&coderef
If supplied, then "coderef" is called with $self as the only argument when an SMTP client connects.
It should print a reply to the socket $self−>{sock}. If no "connect" callback is supplied, then the default response printed to the socket is:
"220 localhost.example.com ESMTP\r\n"
ehlo => \&coderef
If supplied, then when an SMTP client issues the EHLO command, "coderef" is called with $self and $line as arguments, where $line is the complete line read from the SMTP client.
It should print a reply to the socket $self−>{sock}. If no "ehlo" callback is supplied, then the default response printed to the socket is:
"250−localhost.example.com\r\n250−SIZE 100000\r\n250 8BITMIME\r\n"
helo => \&coderef
Similar to "ehlo", but called if the client issues the HELO command. The default response is:
"250 localhost.example.com\r\n"
mail => \&coderef
Similar to "ehlo", but called if the client issues the MAIL From: command. The default response is:
"250 2.1.0 Ok\r\n"
rcpt => \&coderef
Similar to "ehlo", but called if the client issues the RCPT To: command. The default response is:
"250 2.1.0 Ok\r\n"
data => \&coderef
Similar to "ehlo", but called if the client issues the DATA command. The default response is:
"354 End data with <CR><LF>.<CR><LF>\r\n"
Stops the SMTP server.
Dianne Skoll <[email protected]>
This code is licensed under the terms of the GNU General Public License, version 2.