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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка существования пользователя почты 
:(
    Опции темы
comhunt
Дата 17.9.2010, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

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



Предыстория
На сервере имеется почтовый домен postdomain.com.
Имеется ряд пользователей этого почтового домена - т.е. фактически почтовые ящики.
Имеется форма где посетитель сайта вводит адрес своей почты.
Если он указывает несуществующий адрес почты то тут возможны два случая:
1. Почтовый домен введенного емаил не принадлежит данному серверу - проблем никаких.
2. Почтовый домен введенного емаил принадлежит данному серверу (postdomain.com) - в этом случае попытка отправить письмо по этому адресу вываливает ошибку в лог и завершает выполнение сценария.
Отправку осуществляю при помощи модуля  MIME::Lite
Постановка задачи:
Надо каким-то образом выяснить есть ли введенный пользователь на сервере или нет перед отправкой письма, чтобы избежать завершения сценария.


Это сообщение отредактировал(а) comhunt - 17.9.2010, 20:58
PM MAIL   Вверх
KSURi
Дата 17.9.2010, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 20
Всего: 27



Никак вы это не выясните, не отправив письмо.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
comhunt
Дата 17.9.2010, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

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



>Никак вы это не выясните, не отправив письмо.
А почему это нельзя выяснить? Ведь домен находится на том же сервере где и скрипт! Неужели нельзя как то обратиться к почтовому серверу и выяснить есть ли пользователь или нет?
PM MAIL   Вверх
dva300
Дата 17.9.2010, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



если вы все по умолчанию и используете sendmail то возможно там в полезных скриптах что-то и есть на эту тему чтобы совсем красиво в виде ключика...
но первое что приходит на ум это файл access или passwd - сервер то ваш. не вижу сложностей.

P.S. я правда не совсем понял что это вы такое делаете. 
обычно задача стоит в проверке получателя за пределами вашего почтового домена 

--------------------
Участник движения Культура Вождения
PM   Вверх
comhunt
Дата 17.9.2010, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

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



Да проблема в том что пользователем заполняющим форму может оказаться владелец ящика на моем сервере и написать его при этом неправильно. (такое периодически случается...) А мой скрипт должен прислать ему на почту письмо-уведомление. Так вот умный почтовый сервер при попытке прислать письмо на несуществующий адрес в домене который ему принадлежит вываливает ошибку и скрипт киляется. В этом то проблема и есть, и ее надо как-то избежать.

Это сообщение отредактировал(а) comhunt - 17.9.2010, 21:27
PM MAIL   Вверх
dva300
Дата 17.9.2010, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(comhunt @ 17.9.2010,  21:26)
Да проблема в том что пользователем заполняющим форму может оказаться владелец ящика на моем сервере и написать его при этом неправильно. (такое периодически случается...) А мой скрипт должен прислать ему на почту письмо-уведомление. Так вот умный почтовый сервер при попытке прислать письмо на несуществующий адрес в домене который ему принадлежит вываливает ошибку и скрипт киляется. В этом то проблема и есть, и ее надо как-то избежать.

хм... показываете скрипт. 
могу предположить что все может решиться заменой $msg->send || die на что-нибудь другое
--------------------
Участник движения Культура Вождения
PM   Вверх
comhunt
Дата 18.9.2010, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

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



Кусок кода для отправки:


my $msg = MIME::Lite->new( From    => $sender_email,
                           To      => "$recepient",
                           Subject => "$topic",
                           Type    => "text/plain; charset=windows-1251",
                           Data    => "$text" );

$msg->send('smtp', $cfg::sender_server, Timeout=>$cfg::sender_timeout);

Вот проблема как раз в $recepient
PM MAIL   Вверх
dva300
Дата 18.9.2010, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(comhunt @ 18.9.2010,  09:12)
Кусок кода для отправки:


my $msg = MIME::Lite->new( From    => $sender_email,
                           To      => "$recepient",
                           Subject => "$topic",
                           Type    => "text/plain; charset=windows-1251",
                           Data    => "$text" );

$msg->send('smtp', $cfg::sender_server, Timeout=>$cfg::sender_timeout);

Вот проблема как раз в $recepient

попробуйте так

Код

undef $@;
eval { $msg->send(...) };  
warn "Не могу отправитьпочту: $@\n" if $@;


--------------------
Участник движения Культура Вождения
PM   Вверх
arto
Дата 18.9.2010, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



все зависит от архитектуры вашей mail системы.
у вас там могут быть как простые пользователи, так и алиасы и виртуальные пользователи.
если нс можете разобраться -- просто пошлите письмо и попросите ответить.
PM MAIL ICQ   Вверх
MaxPayne
Дата 20.9.2010, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 9.8.2005

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



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


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

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


 




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


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

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