Ensiferum Опубликовано 23 сентября, 2013 Жалоба Поделиться Опубликовано 23 сентября, 2013 Понадобилось отправить письма через SMTP яндекса. Написал решение через библиотеку Phpmailer. В скрепке архив с файлами (Убрать в конце расширение .php). Надо к текущему сайту лишь добавить папку Phpmailer (в корень) и заменить api/Notify.php В конфиге config/config.php добавить секцию: [phpmailer] phpmailer_enable = true; phpmailer_host = 'smtp.yandex.ru'; phpmailer_port = 25; phpmailer_user = 'user'; phpmailer_password = 'pass'; phpmailer_ssl = false;Также переработал отправку сообщений о комментариях и заказах. Если в настройках указать не 1 email, а несколько через точку с запятой - сообщения о комментариях и заказах разойдутся всем.simpla.rar.php Цитата Ссылка на сообщение Поделиться на другие сайты
SkazZzo4nik Опубликовано 27 сентября, 2013 Жалоба Поделиться Опубликовано 27 сентября, 2013 Это работает только с яндексом? Цитата Ссылка на сообщение Поделиться на другие сайты
Pirog Опубликовано 6 октября, 2013 Жалоба Поделиться Опубликовано 6 октября, 2013 спасибо! все отлично работает! Цитата Ссылка на сообщение Поделиться на другие сайты
pedro Опубликовано 7 октября, 2013 Жалоба Поделиться Опубликовано 7 октября, 2013 Это работает только с яндексом?с любым SMTP! Цитата Ссылка на сообщение Поделиться на другие сайты
SkazZzo4nik Опубликовано 25 октября, 2013 Жалоба Поделиться Опубликовано 25 октября, 2013 У меня вот такую ошибку выдает: SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host. Warning: Cannot modify header information - headers already sent by (output started at /home/folder/public_html/name.ru/Phpmailer/Phpmailer.php:586) in /home/folder/public_html/name.ru/view/CartView.php on line 125 Warning: Cannot modify header information - headers already sent by (output started at /home/folder/public_html/name.ru/Phpmailer/Phpmailer.php:586) in Цитата Ссылка на сообщение Поделиться на другие сайты
valera Опубликовано 9 апреля, 2014 Жалоба Поделиться Опубликовано 9 апреля, 2014 Большое спасибо, очень полезная доработка!Пришлось немного модифицировать конфиг для Яндекса: [phpmailer] phpmailer_enable = true; phpmailer_host = 'smtp.yandex.ru'; phpmailer_port = 465; phpmailer_user = 'email'; phpmailer_password = 'pass'; phpmailer_ssl = true; и notify: $mailer->From = $mailer->Username; // $from $mailer->FromName = "robot"; $mailer->Sender = $mailer->Username; Иначе не хотело работать... Цитата Ссылка на сообщение Поделиться на другие сайты
Smoke Опубликовано 24 июня, 2014 Жалоба Поделиться Опубликовано 24 июня, 2014 у меня вот такая ошибка вышла, но в админке в ЗАКАЗЫ поступает, но НЕ отсылается SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host.Warning: Cannot modify header information - headers already sent by (output started at /home/site/data/www/site/Phpmailer/Phpmailer.php:586) in /home/site/data/www/site/view/CartView.php on line 122Warning: Cannot modify header information - headers already sent by (output started at /home/site/data/www/site/Phpmailer/Phpmailer.php:586) in /home/site/data/www/site/index.php on line 33 Цитата Ссылка на сообщение Поделиться на другие сайты
Smoke Опубликовано 24 июня, 2014 Жалоба Поделиться Опубликовано 24 июня, 2014 кусок CartView.php: // Отправляем письмо пользователю $this->notify->email_order_user($order->id); // Отправляем письмо администратору $this->notify->email_order_admin($order->id); // Очищаем корзину (сессию) $this->cart->empty_cart(); // Перенаправляем на страницу заказа сторка 122 header('Location: '.$this->config->root_url.'/order/'.$order->url); } кусок от index.php: // Если все хорошо if(($res = $view->fetch()) !== false) { // Выводим результат строка 33 header("Content-type: text/html; charset=UTF-8"); print $res; // Сохраняем последнюю просмотренную страницу в переменной $_SESSION['last_visited_page'] if(empty($_SESSION['last_visited_page']) || empty($_SESSION['current_page']) || $_SERVER['REQUEST_URI'] !== $_SESSION['current_page']) { if(!empty($_SESSION['current_page']) && !empty($_SESSION['last_visited_page']) && $_SESSION['last_visited_page'] !== $_SESSION['current_page']) $_SESSION['last_visited_page'] = $_SESSION['current_page']; $_SESSION['current_page'] = $_SERVER['REQUEST_URI']; } } помогите ребята. что не так? Цитата Ссылка на сообщение Поделиться на другие сайты
Smoke Опубликовано 24 июня, 2014 Жалоба Поделиться Опубликовано 24 июня, 2014 вот строка от Phpmailer.php } catch (phpmailerException $e) { $this->SetError($e->getMessage()); if ($this->exceptions) { throw $e; } сторока 586 echo $e->getMessage()."\n"; return false; } Цитата Ссылка на сообщение Поделиться на другие сайты
Smoke Опубликовано 24 июня, 2014 Жалоба Поделиться Опубликовано 24 июня, 2014 Автор темы Был на сайте 27.09.2013 14:11 думаю он бросил это дело.Писал симпле: Denis Pikusov 11:26 (2 ч. назад) кому: мне К сожалению я не могу помочь с чужим кодом, уточните пожалуйста у автора модуля А у Вас нету другого решения?хостинг менять не Хочется, т.к. привык к нему. Denis Pikusov 11:49 (1 ч. назад) К сожалению пока нет что делать уже незнаю, руки опустились смотрю файлы надо сохранить в utf-8 без БОМа Цитата Ссылка на сообщение Поделиться на другие сайты
Smoke Опубликовано 24 июня, 2014 Жалоба Поделиться Опубликовано 24 июня, 2014 удалил 586 строку в Phpmailer.php: echo $e->getMessage()."\n"; ошибка пропала, но не отсылается на почту Цитата Ссылка на сообщение Поделиться на другие сайты
Smoke Опубликовано 24 июня, 2014 Жалоба Поделиться Опубликовано 24 июня, 2014 kors писал в личку, контактов нет у него.есть другой метод отправки по СМТП ? Цитата Ссылка на сообщение Поделиться на другие сайты
Gloobus Опубликовано 27 июня, 2014 Жалоба Поделиться Опубликовано 27 июня, 2014 У вас ошибка о невозможности соединиться с SMTP хостом.Если у кого то работает, а у вас нет, тут варианты:1. Хостинг который вас безбожно режет, попробуйте поменять порт, многие закрывают 25 порт. Все популярные почтовые сервисы предоставляют альтернативный с SSL2. Вы ошиблись в параметрах конфигурации (хост, порт, имя пользователя, пароль). Не везде срабатывает в качестве логина username, многие требуют указывать username@domain.ru А по хорошему, SMTP не нужен, достаточно нормального VPS и настроенного DKIM на почтовом сервере - письма уходят без проблем и не попадают в спам Цитата Ссылка на сообщение Поделиться на другие сайты
aflower Опубликовано 4 августа, 2014 Жалоба Поделиться Опубликовано 4 августа, 2014 у меня так и невышло настроить отправкуSMTP Error: Could not connect to SMTP host. Цитата Ссылка на сообщение Поделиться на другие сайты
amigorzn Опубликовано 22 августа, 2014 Жалоба Поделиться Опубликовано 22 августа, 2014 [phpmailer]phpmailer_enable = true;phpmailer_host = "smtp.yandex.ru";phpmailer_port = 465;phpmailer_user = "вашеимя@yandex.ru";phpmailer_password = "пароль";phpmailer_ssl = true; кавычки двойные с учетом измененив notifiи как тут писали.c 47 строки по 49 (у меня) меняем на $mailer->From = $mailer->Username; // $from$mailer->FromName = "robot";$mailer->Sender = $mailer->Username; и все работает Цитата Ссылка на сообщение Поделиться на другие сайты
Дмитрий Т. Опубликовано 23 сентября, 2014 Жалоба Поделиться Опубликовано 23 сентября, 2014 у меня выдает ошибку: Fatal error: Call to undefined method Notify::email_user_registration() in /var/www/cdfance9645/data/www/fancentr.com/view/RegisterView.php on line 38 что делать? Подскажите... Цитата Ссылка на сообщение Поделиться на другие сайты
AlexanderKi Опубликовано 16 ноября, 2014 Жалоба Поделиться Опубликовано 16 ноября, 2014 у меня пустая страница после отпарвки, и ничего не доходит. Цитата Ссылка на сообщение Поделиться на другие сайты
AlexanderKi Опубликовано 16 ноября, 2014 Жалоба Поделиться Опубликовано 16 ноября, 2014 Все, разобрался, спасибо. Цитата Ссылка на сообщение Поделиться на другие сайты
crab Опубликовано 20 июня, 2015 Жалоба Поделиться Опубликовано 20 июня, 2015 Пол дня мучался, заработало когда заменил строку phpmailer_host = 'smtp.yandex.ru'; на phpmailer_host = 'ssl://smtp.yandex.ru'; Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 20 июня, 2015 Жалоба Поделиться Опубликовано 20 июня, 2015 Пол дня мучался, заработало когда заменил строку phpmailer_host = 'smtp.yandex.ru'; на phpmailer_host = 'ssl://smtp.yandex.ru'; http://forum.simplacms.ru/topic/9389-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0-%D0%BC%D1%8B%D0%BB%D0%B0-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-stmp/ пол-минуты не мучался и все получилось Цитата Ссылка на сообщение Поделиться на другие сайты
crab Опубликовано 20 июня, 2015 Жалоба Поделиться Опубликовано 20 июня, 2015 Хм, спасибо, нужно будет попробовать. Жаль что раньше не видел этого решения. Цитата Ссылка на сообщение Поделиться на другие сайты
crab Опубликовано 20 июня, 2015 Жалоба Поделиться Опубликовано 20 июня, 2015 Хотя кто бы знал, что просто нужно дописать ssl:// перед адресом сервера. Думаю и с этим примером то же самое было бы Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 20 июня, 2015 Жалоба Поделиться Опубликовано 20 июня, 2015 (изменено) Хотя кто бы знал, что просто нужно дописать ssl:// перед адресом сервера. Думаю и с этим примером то же самое было бы яндекс анонсировали полный переход на защищенный протокол год назад помоему или около того, поэтому везде нужно было заменить простой http на шифрованый и порт 465. Изменено 20 июня, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
crab Опубликовано 20 июня, 2015 Жалоба Поделиться Опубликовано 20 июня, 2015 Спасибо, отстал от жизни ) Цитата Ссылка на сообщение Поделиться на другие сайты
Rash Опубликовано 21 июня, 2015 Жалоба Поделиться Опубликовано 21 июня, 2015 (изменено) Хотя кто бы знал, что просто нужно дописать ssl:// перед адресом сервера. Думаю и с этим примером то же самое было бы 1,5 года стоит эта доработка и все работает Изменено 21 июня, 2015 пользователем Rash Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.