Как сделать, чтобы заработала функция mail("Мой емейл", "Тема письма", "Текст письма");
Ведь на хостингах работает, а на Synology нет ![]()
Заранее спасибо за ответы ![]()
Как сделать, чтобы заработала функция mail("Мой емейл", "Тема письма", "Текст письма");
Ведь на хостингах работает, а на Synology нет ![]()
Заранее спасибо за ответы ![]()
Чтобы работала функция mail() нужно прописать правильный DNS сервер в настройках сети.
Иначе будет выдаваться ошибка: "Warning: mail() [function.mail]: Failed to send mail. (Failed to resolve host address.) in"
У меня дома вот такая связка:
http://i.piccy.info/i4/32/e0/c70cd6b83ffc4a9a92d92c44312a.png
Вот то, что я вижу в настройках сети DS209+II
http://i.piccy.info/i4/5f/e8/4059aad3a3f9c2cdf6bed96aa368.png
Вот то, что дал мне из данных мой провайдер:
IP Address: 212.22.197.94
Subnet Mask: 255.255.255.0
ISP Gateway Address: 212.22.197.254
Primary DNS Address: 193.24.25.1
Secondary DNS Address: 193.24.25.250
А вот код скрипта который я сделал для проверки этой функции:
<?php //// Кому отсылаем $email = "[email protected]"; //// Тема письма $subject = "Проверка"; //// Текст сообщения $message = "Проба отослать сообщение"; //// Заголовки $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=koi-8r\r\n"; //$headers .= "From: [email protected]\r\n"; //// Приоритеты важности письма $headers .= "X-MSMail-Priority: High\r\n"; $headers .= "X-Priority: 1\r\n"; $headers .= "Priority: Urgent\r\n"; $headers .= "Importance: High\r\n"; //// Название программы с которой было отправлено сообщение $headers .= "X-Mailer: ZEOS\r\n"; //// Отправка c проверкой if (mail($email, $subject, $message, $headers)) { echo "Ура, сообщение отослалось успешно :)"; } else { echo "Ошибка, сообщение не доставлено :("; } ?>
Подскажите пожалуйста, что я делаю не так? ![]()
У меня постоянно результат скрипта:
Warning: mail() [function.mail]: Failed to send mail. (Failed to resolve host address.) in /volume1/web/mail.php on line 26Ошибка, сообщение не доставлено
Заранее спасибо. С уважением, Сергей! ![]()
простите, а это он про какую строку в коде говорит: "/volume1/web/mail.php on line 26"
которая 26-я?
Естественно там, где функция mail();
if (mail($email, $subject, $message, $headers)) {
Также в меню "Сеть" моего Synology в подсказках, есть такая информация:
Примечание: Чтобы убедиться в том, что уведомления электронной почты доставляются корректно через SMTP-сервер, необходимо ввести действующий IP-адрес DNS-сервера.
Может для того, чтобы заработала функция Mail(); надо установить: Mail Station ? ![]()
В php.ini по умолчанию стоит smtp порт 25, а многие провайдеры его блокируют. Попробуйте его поменять скажем на 2525...
Еще включите на всякий случай функцию "уведомления" по e-mail в NAS (notification).
Должно все заработать.
Vladimir, а нужно устанавливать Mail Station? Или можно как-то без него обойтись?
Очень прошу объяснить, что именно тут надо вводить в полях:
http://i.piccy.info/i4/05/cd/d92e4f768c250044ec492d187374.png
Что за SMTP сервер надо прописать? Моего провайдера или почты которой я пользуюсь? (у меня, например, google)
Также не понятен блок: "Требуется аутентификация" ? Зачем мне вводить тут логин и пароль от моей почты, чтобы потом самому себе отсылать уведомления ![]()
В поля первичный и вторичный емейл надо ввести свой емейл ![]()
Удалено
Vladimir, а нужно устанавливать Mail Station? Или можно как-то без него обойтись?
Очень прошу объяснить, что именно тут надо вводить в полях:
http://i.piccy.info/i4/05/cd/d92e4f768c250044ec492d187374.png
Что за SMTP сервер надо прописать? Моего провайдера или почты которой я пользуюсь? (у меня, например, google)
Также не понятен блок: "Требуется аутентификация" ? Зачем мне вводить тут логин и пароль от моей почты, чтобы потом самому себе отсылать уведомления
В поля первичный и вторичный емейл надо ввести свой емейл
smtp.gmail.com
25
требуется ssl
требуется аутентификация
имя пользователя (то, что до @gmail.com)
пароль
адреса куда отправляем извещения
Ура супер! Всё вышло и работает точно как надо ![]()
Vladimir, Вы сказали включить на всякий случай функцию уведомления. Но оказывается без неё никак не будет работать функцйия mail();
Странно, что разработчики ни слова не написали про функцию mail(); в документации и приходится вот так вот на форумах решать проблемы ![]()
Всем большое спасибо
![]()