![]() |
Функция РНР mail()
Хочу использовать функцию РНР mail(), но у меня выскакивает ошибка соединения.
Я прочитал, что для ее спользования надо настроить PHP. Прошу помочь мне в этом. В рнр.ini я нашел только несколько строк относительно mail: [mail function] SMTP =localhost ;for win32 only sendmail_from =me@localhost.com ;for win32 only ;sendmail_path = ;for unix only, may supply arguments as well (default is 'sendmail -t -i') Где здесь нужно указать расположение программы электронной почты? (У меня Apache+PHP+MySQL). |
Re: Функция РНР mail()
Если ты под Windows, то укажи SMTP=твой хост:порт (на котором живет твой mail сервер). Причем этот самый mail сервер должен быть правильно настроен для этого с точки зрения безопасности!
А если Unix/Linux то в sendmail_path пропиши путь к программе sendmail на твоем серваке. |
хорошо подходит СМТП провайдера.... они по ип твоему определят
|
поясняю.. нужен почтовый SMTP сервак (то ли 23 то ли 25 порт)..
попробуй http://www.sendmail.org/ <--платная http://www.postcastserver.com/ <-- беспалатная |
Спасибо за помощь!
Теперь у меня в SMTP (php.ini) записано: SMTP =mail.tula.net Но теперь другая фишка: Запускается код странички откуда уходит почта; пока запрашивается соединение, она пуста, а когда почта ушла, то "код1" появляется, а "код2" - нет. Соединение после этого автоматически не отключается. <HTML> <body> "код1" <? ... @ $errhan=mail($toaddr, $subject, $textmail); if (!$errhan) echo "Ошибка соединения!"; ?> "код2" </body> </HTML> В чем здесь дело? На сколько я понимаю, реальный сервер будет отправлять почту сразу (?), а как быть с остальной частью моей великолепной страницы? И еще - что значит "правильно настроен с точки зрения безопасности", ведь это не мой сервак, а сервер провайдера? (Да, я под Win98/Me). |
x3.... попробуй на хостере.. может что-то не так с пхп под винду 9х
|
Может такое решение подойдет:
Запиши код отправки сообщения отдельным файлом, потом в основном коде после твоего код1 напиши require_once("твой файл с кодом отправки сообщения"); а потом твой код2 Пока почта будет отправляться, должен выполнится твой код2 а после всего этого проверь переменную отправки сообщения на предмет удачного выполнения. |
Вот как - оказывается Server Error в этой строке с mail().
А в следующей строке такое: Maximum execution time of 30 seconds exceeded in /имя файла и строки/, какая бы она не была. И почта соответственно никуда не уходит, хотя адреса и явки все заданы верно. А последний вариант я еще не пробовал, посмотрим... |
Если пишет Server Error, значит сервак, к которому ты обращаешься не принимает твое письмо, а это скорее всего потому, что ему нужен логин и пароль, вот это и есть настройки безопасности о которых я писал! Либо просто ты не можешь связаться с сервером (не тот порт или еще что-то)
|
SMTP не требует логина и пароля
|
Точно, че это я, блин, с POP3 перепутал.
|
Большоое спасибо за ответы, особенно mdg и stasiku!
Все работает. Даю ответ сам себе: В php.ini я прописал SMTP =mail.tula.net , а скрипт выполнялся не до конца потому, что не было соединения. Т.е. после срабатывания функции mail() предлагалось установить соединение, а после его разрыва возникала fatal error, которую я уже описывал. Если же сначала установить соединение, а затем отправить почту, то все работает нормально. У меня есть еще вопросы, так что с форумом я не прощаюсь. |
Всегда пожалуйста!:smile:
|
no problem
|
| Часовой пояс GMT +4, время: 01:03. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.