synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяВеб Сервер + PHP / MySQL › Mail();

Mail();

WWW.ZEOS.IN · 05.10.2009

Как сделать, чтобы заработала функция mail("Мой емейл", "Тема письма", "Текст письма");

Ведь на хостингах работает, а на Synology нет :(

 

Заранее спасибо за ответы :rolleyes:

Vladimir · 07.10.2009

Чтобы работала функция mail() нужно прописать правильный DNS сервер в настройках сети.

Иначе будет выдаваться ошибка: "Warning: mail() [function.mail]: Failed to send mail. (Failed to resolve host address.) in"

WWW.ZEOS.IN · 07.10.2009

У меня дома вот такая связка:

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

Ошибка, сообщение не доставлено :(

 

Заранее спасибо. С уважением, Сергей! :rolleyes:

sterlopus · 07.10.2009

простите, а это он про какую строку в коде говорит: "/volume1/web/mail.php on line 26"

которая 26-я?

WWW.ZEOS.IN · 07.10.2009

Естественно там, где функция mail();

if (mail($email, $subject, $message, $headers)) {
:(
WWW.ZEOS.IN · 07.10.2009

Также в меню "Сеть" моего Synology в подсказках, есть такая информация:

Примечание: Чтобы убедиться в том, что уведомления электронной почты доставляются корректно через SMTP-сервер, необходимо ввести действующий IP-адрес DNS-сервера.

Может для того, чтобы заработала функция Mail(); надо установить: Mail Station ? :(

Vladimir · 07.10.2009

В php.ini по умолчанию стоит smtp порт 25, а многие провайдеры его блокируют. Попробуйте его поменять скажем на 2525...

Еще включите на всякий случай функцию "уведомления" по e-mail в NAS (notification).

Должно все заработать.

WWW.ZEOS.IN · 07.10.2009

Vladimir, а нужно устанавливать Mail Station? Или можно как-то без него обойтись?

 

Очень прошу объяснить, что именно тут надо вводить в полях:

http://i.piccy.info/i4/05/cd/d92e4f768c250044ec492d187374.png

Что за SMTP сервер надо прописать? Моего провайдера или почты которой я пользуюсь? (у меня, например, google)

Также не понятен блок: "Требуется аутентификация" ? Зачем мне вводить тут логин и пароль от моей почты, чтобы потом самому себе отсылать уведомления :blink:

 

В поля первичный и вторичный емейл надо ввести свой емейл :)

WWW.ZEOS.IN · 07.10.2009

Удалено

sterlopus · 07.10.2009
Vladimir, а нужно устанавливать Mail Station? Или можно как-то без него обойтись?

 

Очень прошу объяснить, что именно тут надо вводить в полях:

http://i.piccy.info/i4/05/cd/d92e4f768c250044ec492d187374.png

Что за SMTP сервер надо прописать? Моего провайдера или почты которой я пользуюсь? (у меня, например, google)

Также не понятен блок: "Требуется аутентификация" ? Зачем мне вводить тут логин и пароль от моей почты, чтобы потом самому себе отсылать уведомления :blink:

 

В поля первичный и вторичный емейл надо ввести свой емейл :)

 

smtp.gmail.com

25

требуется ssl

требуется аутентификация

имя пользователя (то, что до @gmail.com)

пароль

 

адреса куда отправляем извещения

WWW.ZEOS.IN · 08.10.2009

Ура супер! Всё вышло и работает точно как надо :)

 

Vladimir, Вы сказали включить на всякий случай функцию уведомления. Но оказывается без неё никак не будет работать функцйия mail();

Странно, что разработчики ни слова не написали про функцию mail(); в документации и приходится вот так вот на форумах решать проблемы :(

 

Всем большое спасибо :P :rolleyes: