Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аутентификация в Net::SMTP 
:(
    Опции темы
rcdimon
Дата 29.7.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Всем привет. Необходимо написать программу для отправки почты. Использую Net::SMTP

Код

use strict;
use CGI;
use Net::SMTP;
my $smtp = Net::SMTP->new('smtp.yandex.ru',
 Timeout => 30,
  Debug   => 1); # Ваш сервер!
$smtp->mail('[email protected]');
$smtp->to('[email protected]');
$smtp->data();
$smtp->datasend("To: rcdimon\@yandex.ru\n");
$smtp->datasend("\n");
$smtp->datasend("Hello ADMIN!!!!!! :-)\n");
$smtp->dataend();
$smtp->quit;



Выводит

Код

Net::SMTP>>> Net::SMTP(2.30)
Net::SMTP>>>   Net::Cmd(2.27)
Net::SMTP>>>     Exporter(5.60)
Net::SMTP>>>   IO::Socket::INET(1.31)
Net::SMTP>>>     IO::Socket(1.30)
Net::SMTP>>>       IO::Handle(1.27)
Net::SMTP=GLOB(0x219260c)<<< 220 Yandex ESMTP (NO UCE)(NO UBE) server ready at Tue, 29 Jul 2008 22:01:04 +0400
Net::SMTP=GLOB(0x219260c)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0x219260c)<<< 250-smtp15.yandex.ru expected "EHLO a116.et10.az.ru"
Net::SMTP=GLOB(0x219260c)<<< 250-SIZE 20971520
Net::SMTP=GLOB(0x219260c)<<< 250-8BITMIME
Net::SMTP=GLOB(0x219260c)<<< 250-PIPELINING
Net::SMTP=GLOB(0x219260c)<<< 250-CHUNKING
Net::SMTP=GLOB(0x219260c)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP=GLOB(0x219260c)<<< 250-DSN
Net::SMTP=GLOB(0x219260c)<<< 250-X-RCPTLIMIT 100
Net::SMTP=GLOB(0x219260c)<<< 250-AUTH=LOGIN
Net::SMTP=GLOB(0x219260c)<<< 250-AUTH LOGIN
Net::SMTP=GLOB(0x219260c)<<< 250-STARTTLS
Net::SMTP=GLOB(0x219260c)<<< 250 HELP
Net::SMTP=GLOB(0x219260c)>>> MAIL FROM:<[email protected]>
Net::SMTP=GLOB(0x219260c)<<< 530 5.3.0 Sorry [IP]; Authentication required
Net::SMTP=GLOB(0x219260c)>>> RCPT TO:<[email protected]>
Net::SMTP=GLOB(0x219260c)<<< 530 5.3.0 Sorry [IP]; Authentication required
Net::SMTP=GLOB(0x219260c)>>> DATA
Net::SMTP=GLOB(0x219260c)<<< 530 5.3.0 Sorry [IP]; Authentication required
Net::SMTP=GLOB(0x219260c)>>> To: [email protected]
Net::SMTP=GLOB(0x219260c)>>> Hello ADMIN!!!!!! :-)
Net::SMTP=GLOB(0x219260c)>>> .
Net::SMTP=GLOB(0x219260c)<<< 550 5.5.2 Unknown command 'To: [email protected]'
Net::SMTP=GLOB(0x219260c)>>> QUIT
Net::SMTP=GLOB(0x219260c)<<< 550 5.5.2 Unknown command ''


Там есть слова Authentication required

Тогда добавляю строку 
Код

$smtp->auth('rcdimon','pass');


Но ответ

Код

et::SMTP>>> Net::SMTP(2.30)
Net::SMTP>>>   Net::Cmd(2.27)
Net::SMTP>>>     Exporter(5.60)
Net::SMTP>>>   IO::Socket::INET(1.31)
Net::SMTP>>>     IO::Socket(1.30)
Net::SMTP>>>       IO::Handle(1.27)
Net::SMTP=GLOB(0x2195560)<<< 220 Yandex ESMTP (NO UCE)(NO UBE) server ready at Tue, 29 Jul 2008 22:02:42 +0400
Net::SMTP=GLOB(0x2195560)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0x2195560)<<< 250-smtp12.yandex.ru expected "EHLO a116.eyaz.ru"
Net::SMTP=GLOB(0x2195560)<<< 250-SIZE 20971520
Net::SMTP=GLOB(0x2195560)<<< 250-8BITMIME
Net::SMTP=GLOB(0x2195560)<<< 250-PIPELINING
Net::SMTP=GLOB(0x2195560)<<< 250-CHUNKING
Net::SMTP=GLOB(0x2195560)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP=GLOB(0x2195560)<<< 250-DSN
Net::SMTP=GLOB(0x2195560)<<< 250-AUTH=LOGIN
Net::SMTP=GLOB(0x2195560)<<< 250-AUTH LOGIN
Net::SMTP=GLOB(0x2195560)<<< 250-STARTTLS
Net::SMTP=GLOB(0x2195560)<<< 250 HELP
Net::SMTP=GLOB(0x2195560)>>> MAIL FROM:<[email protected]>
Net::SMTP=GLOB(0x2195560)<<< 530 5.3.0 Sorry [IP]; Authentication required
Net::SMTP=GLOB(0x2195560)>>> RCPT TO:<[email protected]>
Net::SMTP=GLOB(0x2195560)<<< 530 5.3.0 Sorry [IP]; Authentication required
Net::SMTP=GLOB(0x2195560)>>> DATA
Net::SMTP=GLOB(0x2195560)<<< 530 5.3.0 Sorry [IP]; Authentication required
Net::SMTP=GLOB(0x2195560)>>> To: [email protected]
Net::SMTP=GLOB(0x2195560)>>> Hello ADMIN!!!!!! :-)
Net::SMTP=GLOB(0x2195560)>>> .
Net::SMTP=GLOB(0x2195560)<<< 550 5.5.2 Unknown command 'To: [email protected]'
Net::SMTP=GLOB(0x2195560)>>> QUIT
Net::SMTP=GLOB(0x2195560)<<< 550 5.5.2 Unknown command ''


Authentication required Осталось.. что это? Аутентификация у Net::SMTP Не работает?
PM MAIL ICQ   Вверх
nitr
Дата 29.7.2008, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



rcdimon, возможно ошиблись в аутен.данных, т.к. скрипт рабочий + авторизация

Код
#!perl
use strict;

use Net::SMTP;

my $smtp = Net::SMTP->new('smtp.yandex.ru', Timeout => 30,  Debug   => 1);
$smtp->auth('login', 'passwd');

$smtp->mail('***@yandex.ru');
$smtp->to('***@yandex.ru');

$smtp->data();
$smtp->datasend("To: ***\@yandex.ru\n");
$smtp->datasend("\n");
$smtp->datasend("тестовое сообщение.\n");
$smtp->dataend();
$smtp->quit;

Цитата
Net::SMTP>>> Net::SMTP(2.31)
Net::SMTP>>>   Net::Cmd(2.29)
Net::SMTP>>>     Exporter(5.62)
Net::SMTP>>>   IO::Socket::INET(1.31)
Net::SMTP>>>     IO::Socket(1.30_01)
Net::SMTP>>>       IO::Handle(1.27)
Net::SMTP=GLOB(0x19eec6c)<<< 220 Yandex ESMTP (NO UCE)(NO UBE) server ready at Wed, 30 Jul 2008 00:30:29 +0400
Net::SMTP=GLOB(0x19eec6c)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0x19eec6c)<<< 250-smtp5.yandex.ru expected "EHLO ***"
Net::SMTP=GLOB(0x19eec6c)<<< 250-SIZE 20971520
Net::SMTP=GLOB(0x19eec6c)<<< 250-8BITMIME
Net::SMTP=GLOB(0x19eec6c)<<< 250-PIPELINING
Net::SMTP=GLOB(0x19eec6c)<<< 250-CHUNKING
Net::SMTP=GLOB(0x19eec6c)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP=GLOB(0x19eec6c)<<< 250-DSN
Net::SMTP=GLOB(0x19eec6c)<<< 250-AUTH=LOGIN
Net::SMTP=GLOB(0x19eec6c)<<< 250-AUTH LOGIN
Net::SMTP=GLOB(0x19eec6c)<<< 250-STARTTLS
Net::SMTP=GLOB(0x19eec6c)<<< 250 HELP
Net::SMTP=GLOB(0x19eec6c)>>> AUTH LOGIN
Net::SMTP=GLOB(0x19eec6c)<<< 334 ****
Net::SMTP=GLOB(0x19eec6c)>>> *****
Net::SMTP=GLOB(0x19eec6c)<<< 334 ****
Net::SMTP=GLOB(0x19eec6c)>>> *****
Net::SMTP=GLOB(0x19eec6c)<<< 235 Authentication successful.
Net::SMTP=GLOB(0x19eec6c)>>> MAIL FROM:<***@yandex.ru>
Net::SMTP=GLOB(0x19eec6c)<<< 250 2.1.0 Sender syntax Ok;
Net::SMTP=GLOB(0x19eec6c)>>> RCPT TO:<***@yandex.ru>
Net::SMTP=GLOB(0x19eec6c)<<< 250 2.1.5 Recipient address syntax Ok; rcpt=<***@yandex.ru>
Net::SMTP=GLOB(0x19eec6c)>>> DATA
Net::SMTP=GLOB(0x19eec6c)<<< 354 Start mail input; end with <CRLF>.<CRLF>
Net::SMTP=GLOB(0x19eec6c)>>> To: ***@yandex.ru
Net::SMTP=GLOB(0x19eec6c)>>> ЄхёЄютюх ёююс∙хэшх.
Net::SMTP=GLOB(0x19eec6c)>>> .
Net::SMTP=GLOB(0x19eec6c)<<< 250 2.0.0 accepted; S1053229AbYG2Uaa
Net::SMTP=GLOB(0x19eec6c)>>> QUIT
Net::SMTP=GLOB(0x19eec6c)<<< 221 2.0.0 smtp5.yandex.ru Out



--------------------
PM   Вверх
rcdimon
Дата 30.7.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Да не, я проверял несколько раз данные. 
И даже не в яндексе дело подключался к разным серверам.. всегда одно и то же.. что с ней, что без- ничего не меняется
PM MAIL ICQ   Вверх
rcdimon
Дата 30.7.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Отладил по шагам- Net::SMTP вылетает на строке 

Код

require Authen::SASL;


Причем без всяких ошибок и сообщений. Установил я этот Authen::SASL, судя по логу аутентификация прошла успешно... Однако, на почту ничего не приходит все равно

Добавлено через 6 минут и 7 секунд
Видимо яндекс не дает отправить письмо через него. Подключаился к другому SMTP серверу- сообщение прошло.

Это сообщение отредактировал(а) rcdimon - 30.7.2008, 10:26
PM MAIL ICQ   Вверх
nitr
Дата 30.7.2008, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



rcdimon, я вам привел ваш же код. Сообщение пришло нормально. Возможно "Hello ADMIN!" воспринимается как спам. Ни с каких других серверов не тестил. А может быть из вашей подсети прова спам рассылался, поэтому временный блок. Проблема явно не в модуле и скрипте.
P.S.:
Цитата
C:\>perl -v

This is perl, v5.10.0 built for MSWin32-x86-multi-thread
(with 3 registered patches, see perl -V for more detail)

Copyright 1987-2007, Larry Wall

Binary build 1002 [283697] provided by ActiveState http://www.ActiveState.com
Built Jan 10 2008 11:00:53

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

C:\>



--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1739 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.