Ensiferum Posted September 23, 2013 Report Share Posted September 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 Quote Link to post Share on other sites
SkazZzo4nik Posted September 27, 2013 Report Share Posted September 27, 2013 Это работает только с яндексом? Quote Link to post Share on other sites
Pirog Posted October 6, 2013 Report Share Posted October 6, 2013 спасибо! все отлично работает! Quote Link to post Share on other sites
pedro Posted October 7, 2013 Report Share Posted October 7, 2013 Это работает только с яндексом?с любым SMTP! Quote Link to post Share on other sites
SkazZzo4nik Posted October 25, 2013 Report Share Posted October 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 Quote Link to post Share on other sites
valera Posted April 9, 2014 Report Share Posted April 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; Иначе не хотело работать... Quote Link to post Share on other sites
Smoke Posted June 24, 2014 Report Share Posted June 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 Quote Link to post Share on other sites
Smoke Posted June 24, 2014 Report Share Posted June 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']; } } помогите ребята. что не так? Quote Link to post Share on other sites
Smoke Posted June 24, 2014 Report Share Posted June 24, 2014 вот строка от Phpmailer.php } catch (phpmailerException $e) { $this->SetError($e->getMessage()); if ($this->exceptions) { throw $e; } сторока 586 echo $e->getMessage()."\n"; return false; } Quote Link to post Share on other sites
Smoke Posted June 24, 2014 Report Share Posted June 24, 2014 Автор темы Был на сайте 27.09.2013 14:11 думаю он бросил это дело.Писал симпле: Denis Pikusov 11:26 (2 ч. назад) кому: мне К сожалению я не могу помочь с чужим кодом, уточните пожалуйста у автора модуля А у Вас нету другого решения?хостинг менять не Хочется, т.к. привык к нему. Denis Pikusov 11:49 (1 ч. назад) К сожалению пока нет что делать уже незнаю, руки опустились смотрю файлы надо сохранить в utf-8 без БОМа Quote Link to post Share on other sites
Smoke Posted June 24, 2014 Report Share Posted June 24, 2014 удалил 586 строку в Phpmailer.php: echo $e->getMessage()."\n"; ошибка пропала, но не отсылается на почту Quote Link to post Share on other sites
Smoke Posted June 24, 2014 Report Share Posted June 24, 2014 kors писал в личку, контактов нет у него.есть другой метод отправки по СМТП ? Quote Link to post Share on other sites
Gloobus Posted June 27, 2014 Report Share Posted June 27, 2014 У вас ошибка о невозможности соединиться с SMTP хостом.Если у кого то работает, а у вас нет, тут варианты:1. Хостинг который вас безбожно режет, попробуйте поменять порт, многие закрывают 25 порт. Все популярные почтовые сервисы предоставляют альтернативный с SSL2. Вы ошиблись в параметрах конфигурации (хост, порт, имя пользователя, пароль). Не везде срабатывает в качестве логина username, многие требуют указывать username@domain.ru А по хорошему, SMTP не нужен, достаточно нормального VPS и настроенного DKIM на почтовом сервере - письма уходят без проблем и не попадают в спам Quote Link to post Share on other sites
aflower Posted August 4, 2014 Report Share Posted August 4, 2014 у меня так и невышло настроить отправкуSMTP Error: Could not connect to SMTP host. Quote Link to post Share on other sites
amigorzn Posted August 22, 2014 Report Share Posted August 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; и все работает Quote Link to post Share on other sites
Дмитрий Т. Posted September 23, 2014 Report Share Posted September 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 что делать? Подскажите... Quote Link to post Share on other sites
AlexanderKi Posted November 16, 2014 Report Share Posted November 16, 2014 у меня пустая страница после отпарвки, и ничего не доходит. Quote Link to post Share on other sites
AlexanderKi Posted November 16, 2014 Report Share Posted November 16, 2014 Все, разобрался, спасибо. Quote Link to post Share on other sites
crab Posted June 20, 2015 Report Share Posted June 20, 2015 Пол дня мучался, заработало когда заменил строку phpmailer_host = 'smtp.yandex.ru'; на phpmailer_host = 'ssl://smtp.yandex.ru'; Quote Link to post Share on other sites
Maksclub Posted June 20, 2015 Report Share Posted June 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/ пол-минуты не мучался и все получилось Quote Link to post Share on other sites
crab Posted June 20, 2015 Report Share Posted June 20, 2015 Хм, спасибо, нужно будет попробовать. Жаль что раньше не видел этого решения. Quote Link to post Share on other sites
crab Posted June 20, 2015 Report Share Posted June 20, 2015 Хотя кто бы знал, что просто нужно дописать ssl:// перед адресом сервера. Думаю и с этим примером то же самое было бы Quote Link to post Share on other sites
mishanya Posted June 20, 2015 Report Share Posted June 20, 2015 (edited) Хотя кто бы знал, что просто нужно дописать ssl:// перед адресом сервера. Думаю и с этим примером то же самое было бы яндекс анонсировали полный переход на защищенный протокол год назад помоему или около того, поэтому везде нужно было заменить простой http на шифрованый и порт 465. Edited June 20, 2015 by mishanya Quote Link to post Share on other sites
crab Posted June 20, 2015 Report Share Posted June 20, 2015 Спасибо, отстал от жизни ) Quote Link to post Share on other sites
Rash Posted June 21, 2015 Report Share Posted June 21, 2015 (edited) Хотя кто бы знал, что просто нужно дописать ssl:// перед адресом сервера. Думаю и с этим примером то же самое было бы 1,5 года стоит эта доработка и все работает Edited June 21, 2015 by Rash Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.