Forum Webscript.Ru
Программирование => Perl => Тема начата: 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
, но кто и зачем это делает?!
-
1. экранировать @
2. смотреть на /var/log/maillog
-
Разобрался, define(`confLOG_LEVEL\', `32\') помогла,
$smtp->print ("helo localhost"); в действительности выглядит так, $smtp->print ("helo $hostname"), где $hostname = `hostname -s`, именно из-за этого был лишний слешN
Спасибо.