![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| comhunt |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 20.3.2009 Репутация: нет Всего: нет |
Предыстория
На сервере имеется почтовый домен postdomain.com. Имеется ряд пользователей этого почтового домена - т.е. фактически почтовые ящики. Имеется форма где посетитель сайта вводит адрес своей почты. Если он указывает несуществующий адрес почты то тут возможны два случая: 1. Почтовый домен введенного емаил не принадлежит данному серверу - проблем никаких. 2. Почтовый домен введенного емаил принадлежит данному серверу (postdomain.com) - в этом случае попытка отправить письмо по этому адресу вываливает ошибку в лог и завершает выполнение сценария. Отправку осуществляю при помощи модуля MIME::Lite Постановка задачи: Надо каким-то образом выяснить есть ли введенный пользователь на сервере или нет перед отправкой письма, чтобы избежать завершения сценария. Это сообщение отредактировал(а) comhunt - 17.9.2010, 20:58 |
|||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Никак вы это не выясните, не отправив письмо.
-------------------- Died at Life.pl line 21 |
|||
|
||||
| comhunt |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 20.3.2009 Репутация: нет Всего: нет |
>Никак вы это не выясните, не отправив письмо.
А почему это нельзя выяснить? Ведь домен находится на том же сервере где и скрипт! Неужели нельзя как то обратиться к почтовому серверу и выяснить есть ли пользователь или нет? |
|||
|
||||
| dva300 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
если вы все по умолчанию и используете sendmail то возможно там в полезных скриптах что-то и есть на эту тему чтобы совсем красиво в виде ключика...
но первое что приходит на ум это файл access или passwd - сервер то ваш. не вижу сложностей. P.S. я правда не совсем понял что это вы такое делаете. обычно задача стоит в проверке получателя за пределами вашего почтового домена --------------------
Участник движения Культура Вождения |
|||
|
||||
| comhunt |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 20.3.2009 Репутация: нет Всего: нет |
Да проблема в том что пользователем заполняющим форму может оказаться владелец ящика на моем сервере и написать его при этом неправильно. (такое периодически случается...) А мой скрипт должен прислать ему на почту письмо-уведомление. Так вот умный почтовый сервер при попытке прислать письмо на несуществующий адрес в домене который ему принадлежит вываливает ошибку и скрипт киляется. В этом то проблема и есть, и ее надо как-то избежать.
Это сообщение отредактировал(а) comhunt - 17.9.2010, 21:27 |
|||
|
||||
| dva300 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
хм... показываете скрипт. могу предположить что все может решиться заменой $msg->send || die на что-нибудь другое --------------------
Участник движения Культура Вождения |
|||
|
||||
| comhunt |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| dva300 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
попробуйте так
--------------------
Участник движения Культура Вождения |
||||
|
|||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
все зависит от архитектуры вашей mail системы.
у вас там могут быть как простые пользователи, так и алиасы и виртуальные пользователи. если нс можете разобраться -- просто пошлите письмо и попросите ответить. |
|||
|
||||
| MaxPayne |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 9.8.2005 Репутация: нет Всего: нет |
У нас на линуксе существовали папки пользовтелей - соответственно созданные при заводе почты. Возможно есть смысл проверять есть ли данные данные папки на серевере. Если есть, то есть и пользователь.
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |