Forum Webscript.Ru

Программирование => Perl => Тема начата: sickboy от 05 Июня 2007, 15:24:42

Название: Net::Telnet & SMTP
Отправлено: sickboy от 05 Июня 2007, 15:24:42
Хочу сделать проверялку SMTP, в общем пример  практически из мана,
$smtp = new Net::Telnet (Telnetmode => 0);
$smtp->open (Host   =>  $hostname,
             Port   =>  $port);

$cmd = $smtp->getline;
die $cmd unless $cmd =~ /^220/;
print $cmd;

$smtp->print ("helo localhost");
$cmd = $smtp->getline;
die $cmd unless $cmd =~ /^250/;
print $cmd;

$smtp->print ("mail from: ");
$cmd = $smtp->getline;
die $cmd unless $cmd =~ /^250/;
print $cmd;
получаю:
220 ESMTP Sendmail
250 Hello localhost [127.0.0.1], pleased to meet you
500 5.5.1 Command unrecognized: ""

Не пойму, почему он на mail from ругается, т.е. ему видимо вместо команды отправляется \\n, но кто и зачем это делает?!
Название: Net::Telnet & SMTP
Отправлено: arto от 05 Июня 2007, 16:29:00
1. экранировать @
2. смотреть на /var/log/maillog
Название: Net::Telnet & SMTP
Отправлено: sickboy от 05 Июня 2007, 16:51:29
Разобрался, define(`confLOG_LEVEL\', `32\') помогла,
$smtp->print ("helo localhost"); в действительности выглядит так, $smtp->print ("helo $hostname"), где $hostname = `hostname -s`, именно из-за этого был лишний слешN
Спасибо.