666fox666 Опубликовано 21 февраля, 2017 Поделиться Опубликовано 21 февраля, 2017 Здравствуйте! Поставил версию 4.1.18.2, и решил настроить отправку почты через SMTP. Столкнулся с проблемой. Данные от SMTP все верные, но при отправке "тестового" письма, вижу следующее IPS\Email\Outgoing\Exception: (0) #0 normalgame.ru/system/Email/Outgoing/Smtp.php(195): IPS\Email\Outgoing\_SMTP->connect() #1 normalgame.ru/system/Email/Outgoing/Smtp.php(180): IPS\Email\Outgoing\_SMTP->_sendCompiled('логин@yandex...', Array, 'MIME-Version: 1...') #2 normalgame.ru/applications/core/modules/admin/settings/email.php(169): IPS\Email\Outgoing\_SMTP->_send('логин@mail.r...', Array, Array, 'логин@yandex...') #3 normalgame.ru/system/Dispatcher/Controller.php(96): IPS\core\modules\admin\settings\_email->manage() #4 normalgame.ru/applications/core/modules/admin/settings/email.php(34): IPS\Dispatcher\_Controller->execute() #5 normalgame.ru/system/Dispatcher/Dispatcher.php(129): IPS\core\modules\admin\settings\_email->execute() #6 normalgame.ru/ngadmin/index.php(14): IPS\_Dispatcher->run() #7 {main} Может кто сталкивался с таким? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WOLF Опубликовано 21 февраля, 2017 Поделиться Опубликовано 21 февраля, 2017 зачем две темы то создавать... лаги... версия php ? скрин настроек в студию Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
666fox666 Опубликовано 22 февраля, 2017 Автор Поделиться Опубликовано 22 февраля, 2017 WOLF, прошу прощения. Видимо случайно создалась. Версия PHP: 7.0.15 (Режим работы пыха CGI) Настройки в скринах. Данные от почты (логин-пароль) верны на 100%. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WOLF Опубликовано 22 февраля, 2017 Поделиться Опубликовано 22 февраля, 2017 в яндексе все верно настроено? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
666fox666 Опубликовано 22 февраля, 2017 Автор Поделиться Опубликовано 22 февраля, 2017 25 минут назад, WOLF сказал: в яндексе все верно настроено? Да. Более того, ранее использовалась такая же Email конфигурация, и всё работало. (Ранее - ещё на ранних версиях 4.1.x, пришлось на какое-то время уйти с IPS, вот заново с нуля накатил, и такая беда). Попробовал и с mail.ru, такая же история (При попытке отправить "тестовое" письмо). Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
666fox666 Опубликовано 24 февраля, 2017 Автор Поделиться Опубликовано 24 февраля, 2017 Пока что выявил, что косяк точно с версией PHP. Проверял сторонним скриптом, при PHP выше 5.5.38 почта перестает приходить через SMTP. Ниже - пожалуйста, всё приходит. В чём загвоздка - не знаю... P.S. Проверял на своей 7.0.15 и на 5.6.30 Заметил забавную штучку. Имеем скрипт отправки SMTP следующего вида <?php $config['smtp_username'] = 'логин@yandex.ru'; //Смените на адрес своего почтового ящика. $config['smtp_port'] = '465'; // Порт работы. $config['smtp_host'] = 'ssl://smtp.yandex.ru'; //сервер для отправки почты $config['smtp_password'] = 'пароль'; //Измените пароль $config['smtp_debug'] = true; //Если Вы хотите видеть сообщения ошибок, укажите true вместо false $config['smtp_charset'] = 'utf-8'; //кодировка сообщений. (windows-1251 или utf-8, итд) $config['smtp_from'] = 'Адрес'; //Ваше имя - или имя Вашего сайта. Будет показывать при прочтении в поле "От кого" function smtpmail($to='', $mail_to, $subject, $message, $headers='') { global $config; $SEND = "Date: ".date("D, d M Y H:i:s") . " UT\r\n"; $SEND .= 'Subject: =?'.$config['smtp_charset'].'?B?'.base64_encode($subject)."=?=\r\n"; if ($headers) $SEND .= $headers."\r\n\r\n"; else { $SEND .= "Reply-To: ".$config['smtp_username']."\r\n"; $SEND .= "To: =?".$config['smtp_charset']."?B?".base64_encode($to)."=?= <$mail_to>\r\n"; $SEND .= "MIME-Version: 1.0\r\n"; $SEND .= "Content-Type: text/html; charset=\"".$config['smtp_charset']."\"\r\n"; $SEND .= "Content-Transfer-Encoding: 8bit\r\n"; $SEND .= "From: =?".$config['smtp_charset']."?B?".base64_encode($config['smtp_from'])."=?= <".$config['smtp_username'].">\r\n"; $SEND .= "X-Priority: 3\r\n\r\n"; } $SEND .= $message."\r\n"; if( !$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30) ) { if ($config['smtp_debug']) echo $errno."<br>".$errstr; return false; } if (!server_parse($socket, "220", __LINE__)) return false; fputs($socket, "HELO " . $config['smtp_host'] . "\r\n"); if (!server_parse($socket, "250", __LINE__)) { if ($config['smtp_debug']) echo '<p>Не могу отправить HELO!</p>'; fclose($socket); return false; } fputs($socket, "AUTH LOGIN\r\n"); if (!server_parse($socket, "334", __LINE__)) { if ($config['smtp_debug']) echo '<p>Не могу найти ответ на запрос авторизаци.</p>'; fclose($socket); return false; } fputs($socket, base64_encode($config['smtp_username']) . "\r\n"); if (!server_parse($socket, "334", __LINE__)) { if ($config['smtp_debug']) echo '<p>Логин авторизации не был принят сервером!</p>'; fclose($socket); return false; } fputs($socket, base64_encode($config['smtp_password']) . "\r\n"); if (!server_parse($socket, "235", __LINE__)) { if ($config['smtp_debug']) echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>'; fclose($socket); return false; } fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n"); if (!server_parse($socket, "250", __LINE__)) { if ($config['smtp_debug']) echo '<p>Не могу отправить комманду MAIL FROM: </p>'; fclose($socket); return false; } fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n"); if (!server_parse($socket, "250", __LINE__)) { if ($config['smtp_debug']) echo '<p>Не могу отправить комманду RCPT TO: </p>'; fclose($socket); return false; } fputs($socket, "DATA\r\n"); if (!server_parse($socket, "354", __LINE__)) { if ($config['smtp_debug']) echo '<p>Не могу отправить комманду DATA</p>'; fclose($socket); return false; } fputs($socket, $SEND."\r\n.\r\n"); if (!server_parse($socket, "250", __LINE__)) { if ($config['smtp_debug']) echo '<p>Не смог отправить тело письма. Письмо не было отправленно!</p>'; fclose($socket); return false; } fputs($socket, "QUIT\r\n"); fclose($socket); return TRUE; } function server_parse($socket, $response, $line = __LINE__) { global $config; while (@substr($server_response, 3, 1) != ' ') { if (!($server_response = fgets($socket, 256))) { if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>"; return false; } } if (!(substr($server_response, 0, 3) == $response)) { if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>"; return false; } return true; } ?> Этим скриптом я запускаю отправку на свою почту данных из формы обратной связи <?php include_once('sendmail.php'); include_once('/index.html'); $name = $_POST['name']; $mail = $_POST['mail']; $mobnumber = $_POST['mobnumber']; $name = htmlspecialchars($name); $mail = htmlspecialchars($mail); $mobnumber = htmlspecialchars($mobnumber); $name = urldecode($name); $mail = urldecode($mail); $mobnumber = urldecode($mobnumber); $name = trim($name); $mail = trim($mail); $mobnumber = trim($mobnumber); smtpmail('адрес@mail.ru', 'адрес@mail.ru', 'Информация', '<html><body><p>Имя: '.$name.'</p><p>Почта: '.$mail.'</p><p>Телефон: '.$mobnumber.'</p></body></html>'); header('REFRESH: 3; URL=http://site.ru/'); echo 'Тут мой текст, который выведется на "пустую" страницу, с которой через 3 секунды произойдет редирект обратно на site.ru'; ?> Так вот при версиях PHP ниже 5.5.38, всё было как положено, нажимаем на кнопку отправки данных, нас перебрасывает на "пустую" страничку с надписью "Тут мой текст, который выведется на "пустую" страницу, с которой через 3 секунды произойдет редирект обратно на site.ru", а после через 3 секунды меня перебрасывает на site.ru, и сваливается письмо на адрес. При версиях PHP выше происходит примерно то же самое, но на "пустой" страничке текст отображается вот так: 0 Тут мой текст, который выведется на "пустую" страницу, с которой через 3 секунды произойдет редирект обратно на site.ru Ну и соответственно редирект, но без письма. Почему так происходит - не знаю. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WOLF Опубликовано 24 февраля, 2017 Поделиться Опубликовано 24 февраля, 2017 если виной версия PHP пробуйте отписать хостеру, возможно он в настройках PHP не выставил некоторые значения, объясните ситуацию, может он выставит все тоже самое что и в версии 5.5 на 5.6 и 7.0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
666fox666 Опубликовано 28 февраля, 2017 Автор Поделиться Опубликовано 28 февраля, 2017 WOLF, сайты на VPS стоят. Начиная с версии PHP 5.6 идет проверка сертификатов при SSL/TLS подключениям. Решением оказалось обновить корневые сертификаты до последней версии (от igft). P.S. Спасибо ТехПоддержке) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Dancebunny Опубликовано 27 ноября, 2017 Поделиться Опубликовано 27 ноября, 2017 Что делать? ошибка IPS\Email\Outgoing\Exception: (0) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WOLF Опубликовано 28 ноября, 2017 Поделиться Опубликовано 28 ноября, 2017 3 часа назад, Dancebunny сказал: Что делать? ошибка IPS\Email\Outgoing\Exception: (0) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Dancebunny Опубликовано 28 ноября, 2017 Поделиться Опубликовано 28 ноября, 2017 Пишет что сообщение отправлено, но его нету .... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WOLF Опубликовано 28 ноября, 2017 Поделиться Опубликовано 28 ноября, 2017 2 часа назад, Dancebunny сказал: Пишет что сообщение отправлено, но его нету .... Не нужно флудить в каждой теме, один раз написала и все. По вопросу,смотри на почте в спаме Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Dancebunny Опубликовано 28 ноября, 2017 Поделиться Опубликовано 28 ноября, 2017 4 часа назад, WOLF сказал: Не нужно флудить в каждой теме, один раз написала и все. По вопросу,смотри на почте в спаме Там нету ничего.... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Владимир Опубликовано 26 мая, 2018 Поделиться Опубликовано 26 мая, 2018 Как и вышеотписавшиеся не могу настроить должным образом отправку почты. Пробное письмо не отправляется. Учётные записи для отправки почты точно верны и перепроверены несколько раз. IPS 4.3.3, PHP 7.2.3, Apache 2.4.29 Unix, Linux Storage 4.2.8. Пробовал и обычный PHP способ настраивать, тоже не вышло. Но нужен SMTP. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Megalex Опубликовано 26 мая, 2018 Поделиться Опубликовано 26 мая, 2018 Владимир на название темы не смотри, там 5 страниц, уже на второй начали решать проблему с почтой. Возможно на моем примере решишь проблему. Все ветки перечитай ибо уже не вспомню что делал) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Владимир Опубликовано 26 мая, 2018 Поделиться Опубликовано 26 мая, 2018 2 часа назад, Megalex сказал: Владимир на название темы не смотри, там 5 страниц, уже на второй начали решать проблему с почтой. Возможно на моем примере решишь проблему. Все ветки перечитай ибо уже не вспомню что делал) Насколько я понял, в теме обсуждался pop (т.е. входящие сообщения)? Проверил по такому же подходу, сохраняются ли настройки для smtp в БД - всё сохраняется, всё верно. Или же это неким образом связанные и влияющие друг на друга вещи? Т.к. для pop у меня в БД действительно не заданы никакие значения Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Emix12 Опубликовано 27 мая, 2018 Поделиться Опубликовано 27 мая, 2018 У вас в настройках яндекса, стоит прием писем или отправка? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Emix12 Опубликовано 27 мая, 2018 Поделиться Опубликовано 27 мая, 2018 И проверьте, ли у вас все модули в системе установлены, PHP Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Владимир Опубликовано 27 мая, 2018 Поделиться Опубликовано 27 мая, 2018 2 часа назад, Emix12 сказал: У вас в настройках яндекса, стоит прием писем или отправка? У меня на NAS уже есть учётка от яндекса, через которую он отправляет письма, там всё работает. На ips я выставляю другую учётку с того же домена на яндексе. Более того, если указать недостоверный SMTP в настройках IPS, то выскакивает ошибка таймаута. Т.е. всё-таки при правильных настройках он пытается что-то выполнить. Вход через саму учётку на яндексе работает. Письма с учётки так же отправляются без вопросов. 2 часа назад, Emix12 сказал: И проверьте, ли у вас все модули в системе установлены, PHP Более подробно, какие модули проверять? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Emix12 Опубликовано 27 мая, 2018 Поделиться Опубликовано 27 мая, 2018 9 часов назад, Владимир сказал: У меня на NAS уже есть учётка от яндекса, через которую он отправляет письма, там всё работает. На ips я выставляю другую учётку с того же домена на яндексе. Более того, если указать недостоверный SMTP в настройках IPS, то выскакивает ошибка таймаута. Т.е. всё-таки при правильных настройках он пытается что-то выполнить. Вход через саму учётку на яндексе работает. Письма с учётки так же отправляются без вопросов. Более подробно, какие модули проверять? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Megalex Опубликовано 27 мая, 2018 Поделиться Опубликовано 27 мая, 2018 10 часов назад, Владимир сказал: У меня на NAS уже есть учётка от яндекса Да что ты заладил про свой NAS, да NAS... Да хоть на серверах гугл у тебя пусть стоит сайт. Или у тебя прям сервак Яндекса в твоем NAS хранится... В настройках почты ПРЯМО В ЯНДЕКСЕ, посмотри чтобы включены были протоколы по приему/отправке почты. Так же DNS яндекса должны быть добавлены с правильными значениями (A / AAAA / MX / SRV / TXT / CNAME / SOA) в настройках конфигурации DNS прямо на сервере. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Владимир Опубликовано 27 мая, 2018 Поделиться Опубликовано 27 мая, 2018 44 минуты назад, Emix12 сказал: Всё подключено, всё зелёное. 16 минут назад, Megalex сказал: Да что ты заладил про свой NAS, да NAS... Да хоть на серверах гугл у тебя пусть стоит сайт. Или у тебя прям сервак Яндекса в твоем NAS хранится... В настройках почты ПРЯМО В ЯНДЕКСЕ, посмотри чтобы включены были протоколы по приему/отправке почты. Так же DNS яндекса должны быть добавлены с правильными значениями (A / AAAA / MX / SRV / TXT / CNAME / SOA) в настройках конфигурации DNS прямо на сервере. Я это к тому, что если бы с яндексом было что-то не так, то он уведомления с NAS не приходили бы. Всё это давным давно настроено. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Emix12 Опубликовано 27 мая, 2018 Поделиться Опубликовано 27 мая, 2018 1. Выполни: sudo apt-get install php-pear sudo pear install -o Mail sudo pear install -o Net_SMTP sudo pear install -o Auth_SASL sudo pear install -o mail_mime 2. Попробуй кастомно отправить сообщение: // Pear Mail Library require_once "Mail.php"; $from = '<ete>'; $to = '<te'; $subject = 'Hi!'; $body = "Hi,\n\nHow are you?"; $headers = array( 'From' => $from, 'To' => $to, 'Subject' => $subject ); $smtp = Mail::factory('smtp', array( 'host' => 'ssl://smtp.yandex.ru', 'port' => '465', 'auth' => true, 'username' => 'user', 'password' => 'password' )); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo('<p>' . $mail->getMessage() . '</p>'); } else { echo('<p>Message successfully sent!</p>'); } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Владимир Опубликовано 29 мая, 2018 Поделиться Опубликовано 29 мая, 2018 В 28.05.2018 в 00:02, Emix12 сказал: 1. Выполни: sudo apt-get install php-pear sudo pear install -o Mail sudo pear install -o Net_SMTP sudo pear install -o Auth_SASL sudo pear install -o mail_mime Установка новых программ на NAS это целое дело. Он урезан в командах, никаких apt-get, pear и прочих нет. Есть только wget, да и то, непонятно как потом скачанное установить. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Sipsb Опубликовано 29 мая, 2018 Поделиться Опубликовано 29 мая, 2018 NAS использовать под хост. не благодарное дело. Megalex и Emix12 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.