Простой скрипт для проверки SMTP-сервера

#!/usr/bin/perl
#
# Простой скрипт для тестирования SMTP серверов
# (c) 2008 sysadmin.online@gmail.com
# License GPL3
#
use strict;
use Net::Telnet;
#
my $hostname = 'myhost.mydomain.tld';
my $port = 25;
#
# массив команд
#
my @cmds = (
'EHLO rmyhost.mydomain.tld',
'MAIL FROM: myname@mydomain.tld',
'RCPT TO: test@mydomain.tld',
'DATA',
"To: myname\@mydomain.tld\nSubject: Test Message\ntest\n.",
'QUIT'
);
#
my @lines;
my $line;
my $smtp = new Net::Telnet(Telnetmode => 0, Dump_Log => 'dump_log', Input_log => 'input_log');
#
$smtp->open(Host => $hostname, Port => $port);
my $cmd = $smtp->getline;
die $cmd unless $cmd =~ /^220/;
print $cmd;
foreach (@cmds) {
print $_, "\n";
$smtp->print($_);
push @lines, $smtp->getlines(All => 0); # getlines(All => 0, Errmode => 'return');
print @lines;
@lines = ();
}
#
$smtp->close;

Оригинал: Простой скрипт для тестирования SMTP сервера.

Скорее всего, модуля Net::Telnet нет в системе, его придется доставить, удобнее всего это сделать через CPAN. Простенько и со вкусом.

P.S. Если система Debian/Ubuntu, то недостающий модуль добавляется так:
$ sudo apt-get install libnet-telnet-perl
А если Fedora/RedHat, то:
$ sudo yum install perl-Net-Telnet

Leave a comment

Your comment