Есть веб-форма для регистрации, через которую пользователи должны отправлять свои данные на прописанный в скрипте e-mail, но этого не происходит. По заявлениям создателя скрипта, это должно происходить самими средствами php, т.е. в php.ini прописывается: Код (Text): [mail function] ; For Win32 only. SMTP = IP_MAIL_SERVER smtp_port = 25 ; For Win32 only. sendmail_from = forum@domain,ru ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path = Но увы, скрипт успешно отрабатывается, выдается подтверждение об успешной отправке, но на деле ничего никуда не шлется, ни в логах апача нет ничего подозрительного, ни в логах почтового сервера, который прописан для отправки, нет ни малейшего намека на попытки что-либо отправить с веб-сервера. Кусок из скрипта, отвечающий за отправку сообщения: Код (Text): /* To send HTML mail, you can set the Content-type header. */ $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=windows-1251\r\n"; /* additional headers */ $headers .= "From: Registration <forum@domain.ru>\r\n"; /* and now mail it */ $to = "admin@domain.ru"; mail($to, $subject, $message, $headers); $Smarty->assign("complete", true); FreeBSD 6.2-RELEASE, Apache/2.2.4 (FreeBSD) mod_ssl/2.2.4 OpenSSL/0.9.7e-p1 DAV/2 PHP/5.2.2 with Suhosin-Patch
Слушайте, у вас по существу есть что сказать или нет? Это опечатка здесь уже в посте сделана, когда реальные данные затирались.
А вы сам хостер??? Зачем Вам настраивать php.ini???? У меня отправляется просто через mail(); Без всяких настроек..
Имеется свой веб-сервер, где все и располагается. А у меня не отправляется ни с настойками и без них, поэтому и спрашиваю, что может быть еще. Если не настраивать php, скрипт понятия не будет иметь через какой почтовый сервер отправлять сообщение, как я понимаю, т.к. в нем самом нигде не прописывется куда ему отсылать данные. На этой же машине работает форум, который замечательно все отсылает используя четко прописанный в свих настройках адрес сервер и порт для подключения к постовому серверу.
Nemo, полегче, он не просто сам хостер, он владелец domain.ru! ))) Афтару: Код (Text): $to = "admin@domain.ru"; эта строчка говорит что твои письма уходят по адресу: admin@domain.ru Но ты не волнуйся, их никто не читает т.к. они скорее всего не доходят! см. тут: http://ru2.php.net/mail P.S. Код (Text): /* To send HTML mail, you can set the Content-type header. */ $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=windows-1251\r\n"; /* additional headers */ $headers .= "From: Registration <forum@domain.ru>\r\n"; /* and now mail it */ $to = "admin@domain.ru"; mail($to, $subject, $message, $headers); $Smarty->assign("complete", true); Ты никогда не задумывался зачем написана вся эта лабуда, если достаточно в PHP.ini прописать SMTP-сервер? ... Задумайся! Узнаешь много интересного! (хотя там и думать не надо, достаточно один раз прочитать) P.P.S При такой отправке процентов 30 серверов отправит твою рассылку в спам!
Либо никто не вчитывается в написанное, либо пытаетесь поймать меня на моем непонимании. В третий раз говорю, что все адреса и данные реальные прописаны, domain.ru приведен в посте как пример. Чтобы они хотя бы пробовали уходить, они должны вначале попасть на прописанный в php.ini почтовый сервер, чего не происходит в принципе, обращений с адреса веб-сервера в логах почтового нет.
Они не вчитываются. Не обращайте внимания. В случае системы под никсами, нужно использовать обертку в виде sendmail для обычных почтовых демонов, напрямую работать он с ними не умеет . Тут надо смотреть настройки, а реальный конфиг вы не показывали, и я не знаю как вы настроили.
Вот Вы упертый! 1. Нужно поднять SMTP сервер, 2. в PHP.ini прописать только имя сервера и порт ! И больше ничего! Все остальное через функцию mail! Есть и другой способ отправки в обход mail - тогда уже все гораздо сложнее!
S.t.A.M., ты не прав. С большой вероятностью, он не использует mail для этого, а подключается напрямую сокетами. Это чуть менее быстро, но тоже не плохо. Если такой способ вас устроил бы, то вам надо брать класс PEAR::Mail и его наследников в репозитории, и пользоваться им.
mrrc, кстати, большинство почтовых серверов ставят сами обертку для sendmail - в частности exim и postfix точно делают у меня под дебианом.
S.t.A.M. Я не упертый, просто вы невнимательны и ищите очевидные простые пути решения проблемы А если я не хочу стартовать локальный почтовый сервер на этой машине за ненадобностью, поэтому прописываю IP-адрес рядом стоящего корпоративного почтового сервера для отправки на него сообщений. Под "оберткой" как раз и понимается локально запущенные процессы sendmail-а, которых у меня ес-но не запущено?
А чего проще расковырять форум, посмотреть как там ...и содрать от туда! (сори - изучить, понять, и написать так же, но свое!)))
Форум PunBB, может кто нужный кусок вытащит оттуда? Тут еще и прилепить выдранное в мой скрипт правильно надо
Да почти. У меня запускается /var/postfix/bin/sendmail (поставляется с postfix вместе) что указано в директиве sendmail_path, обертка «понимает» параметры sendmail и скармливает задания демону postfix. Если у вас почтовый сервер на другой машине, думаю лучше будет все таки
Горбунов Олег Ясно, но сам то я класс PEAR::Mail не осилю, не мой профиль, поэтому передам информацию писавшему скрипт или тогда уже придется стартовать все же локальный sendmail и слать все через него на основной корпоративный сервер, будет ли доставляться - еще не пробовал.