Автор Тема: Net::Telnet & SMTP  (Прочитано 3487 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Net::Telnet & SMTP
« : 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: <my@example.com>");
$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, но кто и зачем это делает?!

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Net::Telnet & SMTP
« Ответ #1 : 05 Июня 2007, 16:29:00 »
1. экранировать @
2. смотреть на /var/log/maillog

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Net::Telnet & SMTP
« Ответ #2 : 05 Июня 2007, 16:51:29 »
Разобрался, define(`confLOG_LEVEL\', `32\') помогла,
$smtp->print ("helo localhost"); в действительности выглядит так, $smtp->print ("helo $hostname"), где $hostname = `hostname -s`, именно из-за этого был лишний слешN
Спасибо.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28