![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2002
Сообщений: 82
|
Почему то моя программка не работает для отправки письма, вот проверка работает, а вот senmail что-то не пашет....
(Вот она тут на сервере лежит сендмэйл: $sendmail = "/usr/sbin/sendmail -n -t -odq"; sub send_mail { open(MAIL, "|$sendmail") or die "Не могу открыть программу $sendmail для отправки сообщения. Сообщите об ошибке администратору."; print MAIL <<EOF; From: $email To: edubase\@edubase.ru Имя: $name Фамилия: $sourname Сообщение: $com EOF close MAIL; } Вот в чем проблема - она письмо не отправляет, да еще и ошибку через die не выдает почему? я вот совершенно другой адресс в в переменной отбалды пишу, а она ошибки выдавать не хочет.... почему? |
|
|||||
|
Регистрация: Jul 2002
Адрес: Turkey, Istanbul
Сообщений: 54
|
Для начала запусти свою функцию строчкой &send_mail;
Ты наверное для нее пустую строку оставил. Ну и переменные нужно получить. Для проверки просто текст поставь. Посмотри для примера formmail.pl, об этом скрипте информации в избытке. |
|
|||||
|
Регистрация: Jul 2002
Сообщений: 82
|
....я просто новенький....
думаешь я не догадался вызвать процедуру? если я тут всю программу свою помещу с проверкой да печаткой, много места займет, это просто процедура.....и обработка переменнызх из вормы тоже сиджишным модулем в процедуре вызванной делается,...... Ребят, посмотрите эту процедуру пожалуйста, процедуру, а не программу..... если ничего не найдете, то пришлю программу.... ну чужие скрипты пока не донадобности, я свою форму хочу, кстати писал из книги,..... а почемуv die не работает, вчера все-таки письмо доршло отправленное, но почему-то через 1 час после отправки, а не как не флэшерру через 5 секунд.... так вот, почему die не работает? я специально адресс сэндмэйла на серваке другой поставил, не существующий, а он выполнение программы прерывать не хочет и вывод об ошибке не дает... ![]() |
|
|||||
|
1. From и To есть, а где тип содержимого письма:
From: $email To: edubase\@edubase.ru Content-Type: text/plain 2. С заголовками разобрались, а где пустая строка, отделяющая их от тела письма? From: $email To: edubase\@edubase.ru Content-Type: text/plain Имя: $name Фамилия: $sourname Сообщение: $com
__________________
Two beer or not two beer?... |
|
|||||
|
Регистрация: Jul 2002
Сообщений: 82
|
....и наляпали в книжке ошибок..... это я из книги брал...
там ничего про контент-тайп не сказано, между прочем в двух книгах.. а что с ошибкой-то почему не выдает.... енто ж не хорошо...... |
|
|||||
|
Ошибки должны быть, только не скрипта, а sendmail-а - посмотри в его логах
![]()
__________________
Two beer or not two beer?... |
|
|||||
|
Регистрация: Jul 2002
Сообщений: 82
|
.....вот сейчас в руках книгу держу - написано - ф-я die останавливает выполнение программы и выводит сообщение об ошибке....
я думал, что он остановить выполнение моего скрипта и выведет выражение об ошибке.... вот посмотри часть моего скрипта...#!/usr/bin/perl use CGI; $query = new CGI; $sendmail = "/usr/sbin/sendmail"; if(!$query->param()) { &print_page_start; &print_form; &print_page_end; } else { &set_form_vars; if (&valid_form) { &send_mail; &print_page_start; &print_success; &print_page_end; } else { &print_page_start; &print_error_message; &print_form; &print_page_end; } } Он чего делает - я бы хотел так если ошибка и сэндмэйл не существует - то он прерывает выполнение скрипта и выводит сообщение об ощибке, таким образом не выполняя последующие процедуры &print_page_start; &print_success; &print_page_end; Во... выразил мысль, понимаешь? А то он берет и выполняет процедуру принт_саксесс , вместо того, чтобы сказать, что сэндмэйл не найден.... |
|
|||||
|
Так ведь sendmail то найден... Скрипт успешно его запускает, отдаёт на вход параметры (письмо) и закрывает... С точки зрения перла тут никаких ошибок нет, так как ему всё равно что этот самый sendmail делает - пусть хоть винт форматирует
![]()
__________________
Two beer or not two beer?... |
|
|||||
|
Регистрация: Jul 2002
Сообщений: 82
|
...понял
А как мне тогда так чтобы он ошибку то все-таки выдавал? процедуру чтоли писать отдельную?и еще по ходу дела вопрос про отладку - почему кода в досе запускаю программу так: perl mail.pl он не спрашивает про значения из формы, ведь должен просить ввести имя=значение по парам, а не просит и я не могу проверить вторую часть программы.... хелп? точно должен, в книге тоже написано....ну у нас чат получился, внатуре .... |
|
|||||
|
Проверить из перла отправил ли sendmail письмо можно подсмотрев в его (sendmail-а) логи... если они ведутся, конечно
Или пробовать перенаправлять ответ из sendmail-а на скрипт и разбирать его (если он вообще отвечает - я не знаю )На счёт запроса параметров с клавиатуры, если скрипт запущен не через сервер - первый раз слышу! Это что за умные книжки такие? Наверное есть отладчики перловые, которые спрашивают эти параметры, но мне самому пользоваться ими не приходилось. В твоём случае можно изменить процедуру &set_form_vars, где проверять как запущен скрипт и если это не сервер, то спрашивать параметры с клавиатуры...
__________________
Two beer or not two beer?... |
![]() |
Часовой пояс GMT +4, время: 07:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|