Не работает функция mail()
У меня возникла проблема с функцией mail()
Сначала думал ошибка в коде, но потом взял пример из мануала и результат тот же. Ошибки никакой не выдает, но и на почтовый ящик ничего не приходит.
Порылся в других форумах, откуда узнал, что вероятно это может быть из-за неправильной настройки php.ini/ В частности в поле smtp.
Я его раскомментировал и прописал smtp-эшник сервера, потом все перезагрузил, но результат тот же.
Как я понял проблема довольно распространенная, но тем не менее более или менее исчерпывающий ответ не встретил.
Подскажите пожалуйста, как мне настроить все и как решить эту проблему?
Привет всем,
У меня возникла проблема с функцией mail()
Сначала думал ошибка в коде, но потом взял пример из мануала и результат тот же. Ошибки никакой не выдает, но и на почтовый ящик ничего не приходит.
Порылся в других форумах, откуда узнал, что вероятно это может быть из-за неправильной настройки php.ini/ В частности в поле smtp.
Я его раскомментировал и прописал smtp-эшник сервера, потом все перезагрузил, но результат тот же.
Как я понял проблема довольно распространенная, но тем не менее более или менее исчерпывающий ответ не встретил.
Подскажите пожалуйста, как мне настроить все и как решить эту проблему?
если ты тестил скрипт на бесплатном хосте, то это из-за хостинга, не на всех бесплатных хостах она включена, лучше тести на платных
а если на платном тестил, то выложи код, который ты тестил, а мы посмотрим, может все-таки ты в чем-то ошибся
if(isset($HTTP_POST_VARS["mail"])and isset($HTTP_POST_VARS["name"])and isset($HTTP_POST_VARS["adres"]))
{
$n=$HTTP_POST_VARS["name"];
$m=$HTTP_POST_VARS["mail"];
$a=$HTTP_POST_VARS["adres"];
if($n=="" or $m=="" or $a==""){echo"<h5 align=\"center\">Не все поля заполнены!</h5>";
echo"<a href=\"contact.php\">Вернутся назад и заполнить форму</a>";exit();}
mai("andrey_IMS@mail.ru","Сайт",$m." ".$a." ".$n);
echo"<h5>Ваше письмо отправленно!</h5>";
}
вопрос такой - а smtp сервер установлен и работает?
если да, то запусти скрипт еще раз и запости последние строчки error.log apache'а
ну, раз он правил php.ini, то вряд ли это был хостинг - скорее всего, локалка.
вопрос такой - а smtp сервер установлен и работает?
если да, то запусти скрипт еще раз и запости последние строчки error.log apache'а
Да, smtp сервер настроен, так как на сервере есть перловский скрипт, который осуществляет массовую рассылку. Но я с перлом весьма туго, поэтому приходится обходиться php.
Скрипт, которым проверял работает ли отправка почты, был примерно таким:
$mail=mail("dimonnello@mail.ru", "Проверка почты", "Проверка почты", "From SRSC");
if(isset($mail)) {
echo "Письмо отправлено";
}
else {
echo "Письмо не отправлено";
}
Скрипт этот никакой ошибки не выдавал и послушно сообщл, что письмо отправлено. После этого я взял пример из мануала и тот же результат. Еще скачал пару скриптов с иннета, более сложных, но и они не смогли помочь.
Потом отрыл инфу, что надо настроить php.ini.
Я изменил в нем строку:
SMTP = dc.srsc.ru; for Win32 only
dc.srsc.ru - наш smtp сервер.
Перезагрузил сервер - результата нет.
Пробовал вместо dc.srsc.ru писать ip-адрес, но тоже не помогло.
Проверить, то, что вы мне посоветовали смогу не раньше понедельника :( но все равно большое всем спасибо.
ну, раз он правил php.ini, то вряд ли это был хостинг - скорее всего, локалка.
вопрос такой - а smtp сервер установлен и работает?
если да, то запусти скрипт еще раз и запости последние строчки error.log apache'а
Пробовал то, что вы посоветовали мне. Но ничего не работает :( Скрипт пишет, что письмо отправлено, но на ящик ничего не приходит.
Может быть дело в php? К примеру какую-нибудь библиотеку подключить надо? Дело в том, что кажется в 5 версии php в php.ini есть библиотека php_smtp.dll. А у меня PHP Version 4.3.10, но в php.ini такая библиотека не указана. Подскажите как мне решить эту проблему.
Твое бы письмо точно не дошло. Так как в заголовке не может быть русским символов.
Если нужные русские символы в заголовке, то их нужно кодировать в Quoted Printable или BASE64
From SRSC тоже неверно.
Например:
Возможно письмо прибивается почтовым сервером, антиспами фильтром или антивирусом. (У меня так происходит)
Твое бы письмо точно не дошло. Так как в заголовке не может быть русским символов.
Если нужные русские символы в заголовке, то их нужно кодировать в Quoted Printable или BASE64
From SRSC тоже неверно.
Например:
А как тогда с этим бороться? Как проверить что письма дейсвительно блокируются антиспамером или сервером?
Это тоже не помогло :( Уже и не знаю, что еще сделать, чтобы все работало.