Чудилла Опубликовано 18 марта, 2015 Жалоба Поделиться Опубликовано 18 марта, 2015 (изменено) Все доброго времени суток.Обратился клиент, не приходят письма о заказах, как выяснилось был заблокирован сервис STMP на сервере из-за (вируса) спама. Правильное решение избавится от php mail.Качаем swiftmailer https://github.com/swiftmailer/swiftmailerсохраняем папку lib в /api/lib/ Далее находим файл /api/Notify.phpНаходим функцию function email($to, $subject, $message, $from = '', $reply_to = '') { И меняем содержимое require_once('lib/swift_required.php'); /** * $transport = Swift_SmtpTransport::newInstance('smtp.yandex.ru', 465, 'ssl') * ->setUsername('email@yandex.ru') * ->setPassword('password'); * Можно создать любой емайл на яндексе и использовать в качестве отправки заказов и * других сообщений */ $transport = Swift_SmtpTransport::newInstance('smtp.google.com', 465, 'ssl') ->setUsername('my@example.com') ->setPassword('password'); $mailer = Swift_Mailer::newInstance($transport); $messages = Swift_Message::newInstance($subject) ->setFrom('my@example.com') ->setTo($to) ->setContentType("text/html; charset=UTF-8") ->setBody($message, 'text/html'); $result = $mailer->send($messages); И письма будут доходить 100% даже с выключенным сервисом STMPP.S По мне давно уже никто не использует php mail в качестве отправки писем. Изменено 18 марта, 2015 пользователем Чудилла Цитата Ссылка на сообщение Поделиться на другие сайты
bermando Опубликовано 6 июля, 2015 Жалоба Поделиться Опубликовано 6 июля, 2015 Все доброго времени суток.Обратился клиент, не приходят письма о заказах, как выяснилось был заблокирован сервис STMP на сервере из-за (вируса) спама. Правильное решение избавится от php mail.Качаем swiftmailer https://github.com/swiftmailer/swiftmailerсохраняем папку lib в /api/lib/ Далее находим файл /api/Notify.phpНаходим функцию function email($to, $subject, $message, $from = '', $reply_to = '') { И меняем содержимое require_once('lib/swift_required.php'); /** * $transport = Swift_SmtpTransport::newInstance('smtp.yandex.ru', 465, 'ssl') * ->setUsername('email@yandex.ru') * ->setPassword('password'); * Можно создать любой емайл на яндексе и использовать в качестве отправки заказов и * других сообщений */ $transport = Swift_SmtpTransport::newInstance('smtp.google.com', 465, 'ssl') ->setUsername('my@example.com') ->setPassword('password'); $mailer = Swift_Mailer::newInstance($transport); $messages = Swift_Message::newInstance($subject) ->setFrom('my@example.com') ->setTo($to) ->setContentType("text/html; charset=UTF-8") ->setBody($message, 'text/html'); $result = $mailer->send($messages); И письма будут доходить 100% даже с выключенным сервисом STMPP.S По мне давно уже никто не использует php mail в качестве отправки писем.после отправки выплевывает на пустую страницу( ничего с этим не могу поделать Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 июля, 2015 Жалоба Поделиться Опубликовано 6 июля, 2015 (изменено) после отправки выплевывает на пустую страницу( ничего с этим не могу поделать включите вывод ошибок php и посмотрите какая ошибка Изменено 6 июля, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 14 августа, 2015 Жалоба Поделиться Опубликовано 14 августа, 2015 Белый экран появляется, если в качестве почты ввести почту вида: info@mysite.ru, которая на ЯндексеОбычная почта прокатывает без проблем Цитата Ссылка на сообщение Поделиться на другие сайты
Gloobus Опубликовано 22 августа, 2015 Жалоба Поделиться Опубликовано 22 августа, 2015 Правильное решение это свой VPS + настроенные SPF и DKIM!А это костыли! Не понимаю некоторых владельцев магазинов. Это же не бложек, да и сейчас цены на VPS не кусаются.Нет, сидят многие на самых "ужатых" тарифов какого нибудь задрипанного хостера, который режет все направо и налево Цитата Ссылка на сообщение Поделиться на другие сайты
fo011y Опубликовано 21 ноября, 2015 Жалоба Поделиться Опубликовано 21 ноября, 2015 Спасибо, очень помогло!И кстати сваливается в белое, потому что не указываете настройки почты. Сам только что проверил. Цитата Ссылка на сообщение Поделиться на другие сайты
baarseek Опубликовано 10 мая, 2016 Жалоба Поделиться Опубликовано 10 мая, 2016 Только в функции лучше, мне кажется, указать: ->setFrom(array('john@doe.com' => 'John Doe')) Чтобы в почте адрес выглядел красивее. Цитата Ссылка на сообщение Поделиться на другие сайты
palehin Опубликовано 10 мая, 2016 Жалоба Поделиться Опубликовано 10 мая, 2016 Вставил этот скриптОтправляю письма через ajaxВ обработчике вот такой код: <?php chdir('..'); require_once('api/Simpla.php'); $simpla = new Simpla(); $msg = '<b>Имя:</b> '.$simpla->request->post('username', 'string').'<br /> <b>Телефон или Email</b>: '.$simpla->request->post('tel', 'string').'<br /> <b>Отзыв:</b> '.$simpla->request->post('feed', 'string'); $simpla->notify->email($simpla->notify->settings->notify_from_email, 'Отзыв с сайта ads-irk.ru.org', $msg, '123'); ?> Но при попытке отправки в консоли показывает ошибку:500 (Internal Server Error) Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 10 мая, 2016 Жалоба Поделиться Опубликовано 10 мая, 2016 Для кого-то такая отправка, возможно, и "правильная". А если чуть проанализировать способ, то видно, то что в новом варианте функции mail из пяти параметров последние два просто ИГНОРИРУЮТСЯ - ошибка принципиальная. Из-за этого некоторые письма, например, оповещение админу о сообщение со страницы Контакты, будет приходить не в таком удобном виде, как обычно, и написать на него ответ комфортным образом без выискивания и подстановки ручками email отправителя админу не удастся... И не исключено, что в некоторых случаях из-за неуказанного в заголовке значения from отправка может и не сработать... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 10 мая, 2016 Жалоба Поделиться Опубликовано 10 мая, 2016 (изменено) Вставил этот скриптОтправляю письма через ajaxВ обработчике вот такой код: <?php chdir('..'); require_once('api/Simpla.php'); $simpla = new Simpla(); $msg = '<b>Имя:</b> '.$simpla->request->post('username', 'string').'<br /> <b>Телефон или Email</b>: '.$simpla->request->post('tel', 'string').'<br /> <b>Отзыв:</b> '.$simpla->request->post('feed', 'string'); $simpla->notify->email($simpla->notify->settings->notify_from_email, 'Отзыв с сайта ads-irk.ru.org', $msg, '123'); ?> Но при попытке отправки в консоли показывает ошибку:500 (Internal Server Error) что это за шедевр? $simpla->notify->settings->notify_from_email там должно быть $simpla->settings->notify_from_email из-за этого 500я ошибка. потому что вы пытаетесь вызвать массив настроек из notify где его нет. вообще лучше оформить это все отдельной ф-ей в api/Notify.php и вызывать ее $simpla->notify->review_admin($msg); например. посмотрите как работает Feedback, там все пишется в базу а потом по айди выбирается Изменено 10 мая, 2016 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
palehin Опубликовано 10 мая, 2016 Жалоба Поделиться Опубликовано 10 мая, 2016 что это за шедевр? $simpla->notify->settings->notify_from_email там должно быть $simpla->settings->notify_from_email из-за этого 500я ошибка. потому что вы пытаетесь вызвать массив настроек из notify где его нет. вообще лучше оформить это все отдельной ф-ей в api/Notify.php и вызывать ее $simpla->notify->review_admin($msg); например. посмотрите как работает Feedback, там все пишется в базу а потом по айди выбирается Спасибо Вам в очередной раз) Цитата Ссылка на сообщение Поделиться на другие сайты
Axotn1k Опубликовано 19 мая, 2016 Жалоба Поделиться Опубликовано 19 мая, 2016 При настройке у меня ошибка Parse error: syntax error, unexpected T_REQUIRE_ONCE, expecting T_FUNCTION in /..../api/Notify.php on line 15 что не так сделал ? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 19 мая, 2016 Жалоба Поделиться Опубликовано 19 мая, 2016 Посадил ошибку в файле Notify.php. Проверяйте аккуратно... Цитата Ссылка на сообщение Поделиться на другие сайты
Axotn1k Опубликовано 20 мая, 2016 Жалоба Поделиться Опубликовано 20 мая, 2016 (изменено) Посадил ошибку в файле Notify.php. Проверяйте аккуратно...Та все сделал по инструкции, скачал посылке swiftmailer папку lib , закинул по пути /api/libДальше удалил строчку function email($to, $subject, $message, $from = '', $reply_to = '') { и добавил вместо нее require_once('lib/swift_required.php'); /** * $transport = Swift_SmtpTransport::newInstance('smtp.yandex.ru', 465, 'ssl') * ->setUsername('email@yandex.ru') * ->setPassword('password'); * Можно создать любой емайл на яндексе и использовать в качестве отправки заказов и * других сообщений */ $transport = Swift_SmtpTransport::newInstance('smtp.google.com', 465, 'ssl') ->setUsername('my@example.com') ->setPassword('password'); $mailer = Swift_Mailer::newInstance($transport); $messages = Swift_Message::newInstance($subject) ->setFrom('my@example.com') ->setTo($to) ->setContentType("text/html; charset=UTF-8") ->setBody($message, 'text/html'); $result = $mailer->send($messages); Все же верно, вот мой Notify.php http://rgho.st/8ZpmqmHSfтам и ошибку сделать нету где Изменено 20 мая, 2016 пользователем Axotn1k Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 20 мая, 2016 Жалоба Поделиться Опубликовано 20 мая, 2016 Находим функцию И меняем содержимоеДальше удалил строчку Согласно инструкции из #1 строчку надо было только НАЙТИ, удалять ее - это и есть ошибка. Удалять надо то, что в ТЕЛЕ функции, то есть строки, обозначенные ниже точками: function email($to, $subject, $message, $from = '', $reply_to = ''){....................................................................} Цитата Ссылка на сообщение Поделиться на другие сайты
Axotn1k Опубликовано 20 мая, 2016 Жалоба Поделиться Опубликовано 20 мая, 2016 Согласно инструкции из #1 строчку надо было только НАЙТИ, удалять ее - это и есть ошибка. Удалять надо то, что в ТЕЛЕ функции, то есть строки, обозначенные ниже точками: function email($to, $subject, $message, $from = '', $reply_to = ''){....................................................................} Находим функцию, И меняем содержимое Равнозначно заменить функцию на другу, следственно удалить старую, и вставить новую, разве нет ? Цитата Ссылка на сообщение Поделиться на другие сайты
Axotn1k Опубликовано 20 мая, 2016 Жалоба Поделиться Опубликовано 20 мая, 2016 (изменено) Сделал как правильно, заменил только функцию, ошибка Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.yandex.ru [Connection timed out #110]' in /home/puma1639/public_html/api/lib/classes/Swift/Transport/StreamBuffer.php:269 Stack trace: #0 /home/puma1639/public_html/api/lib/classes/Swift/Transport/StreamBuffer.php(62): Swift_Transport_StreamBuffer->_establishSocketConnection() #1 /home/puma1639/public_html/api/lib/classes/Swift/Transport/AbstractSmtpTransport.php(113): Swift_Transport_StreamBuffer->initialize(Array) #2 /home/puma1639/public_html/api/lib/classes/Swift/Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start() #3 /home/puma1639/public_html/api/Notify.php(40): Swift_Mailer->send(Object(Swift_Message)) #4 /home/puma1639/public_html/api/Notify.php(152): Notify->email('info@site.ru', '???????????? ??...', '<h1 style='font...', 'Andrii Shendiuk...', 'Andrii Shendiuk...') #5 /home/puma1639/public_html/view/FeedbackView.php(51): Notify->email_feedback_admin(275) #6 /home/puma1639/publi in /home/puma1639/public_html/api/lib/classes/Swift/Transport/StreamBuffer.php on line 269 Изменено 20 мая, 2016 пользователем Axotn1k Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 20 мая, 2016 Жалоба Поделиться Опубликовано 20 мая, 2016 'Connection could not be established with host smtp.yandex.ru [Connection timed out #110]' Это уже ошибка другая. Ошибка не от скрипта, а от соединения со сторонним сервером.Возможно, дело в настройках хостинга...Или в неверном логине-пароле (если Вы их задавали)... Цитата Ссылка на сообщение Поделиться на другие сайты
Axotn1k Опубликовано 20 мая, 2016 Жалоба Поделиться Опубликовано 20 мая, 2016 Это уже ошибка другая. Ошибка не от скрипта, а от соединения со сторонним сервером.Возможно, дело в настройках хостинга...Или в неверном логине-пароле (если Вы их задавали)...Спасибо, оказалось хостер закрыл доступ к серверу smtp.yandex.ruнаписал в саппорт, открыли доступ, и все рабортает! Цитата Ссылка на сообщение Поделиться на другие сайты
Axotn1k Опубликовано 27 мая, 2016 Жалоба Поделиться Опубликовано 27 мая, 2016 Такой вопрос, как сделать чтобы письмо приходило на почту от имени емейла который указал пользователь в контактной форме, чтобы на него можно было ответить, сейчас приходит от имени сайту, отвечаю сам себе. В настройках стоит: ->setFrom(array('info@site.ru' => 'Описание сайта')) Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 27 мая, 2016 Жалоба Поделиться Опубликовано 27 мая, 2016 Как раз про этот недостаток и написано в #9.Попробуйте поменять ->setFrom('my@example.com')на ->setFrom($from) Еще можно пробовать менять поле ReplyTo... Цитата Ссылка на сообщение Поделиться на другие сайты
Axotn1k Опубликовано 30 мая, 2016 Жалоба Поделиться Опубликовано 30 мая, 2016 (изменено) Как раз про этот недостаток и написано в #9. Попробуйте поменять ->setFrom('my@example.com')на ->setFrom($from) Еще можно пробовать менять поле ReplyTo...Уже менял так, ошибку выдает при отправке. Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given Изменено 30 мая, 2016 пользователем Axotn1k Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 30 мая, 2016 Жалоба Поделиться Опубликовано 30 мая, 2016 Ошибку-то КАКУЮ? Зачем экономите на написании ПОЛНОГО текста ошибки? Цитата Ссылка на сообщение Поделиться на другие сайты
Axotn1k Опубликовано 31 мая, 2016 Жалоба Поделиться Опубликовано 31 мая, 2016 Ошибку-то КАКУЮ? Зачем экономите на написании ПОЛНОГО текста ошибки?Извините я думала это полный текст ошибки, Вот Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given [Andrei Shenduh <lutsk40@gmail.com>] does not comply with RFC 2822, 3.6.2.' in /home/puma1639/public_html/api/lib/classes/Swift/Mime/Headers/MailboxHeader.php:348 Stack trace: #0 /home/puma1639/public_html/api/lib/classes/Swift/Mime/Headers/MailboxHeader.php(263): Swift_Mime_Headers_MailboxHeader->_assertValidAddress('Andrei Shenduh ...') #1 /home/puma1639/public_html/api/lib/classes/Swift/Mime/Headers/MailboxHeader.php(106): Swift_Mime_Headers_MailboxHeader->normalizeMailboxes(Array) #2 /home/puma1639/public_html/api/lib/classes/Swift/Mime/Headers/MailboxHeader.php(63): Swift_Mime_Headers_MailboxHeader->setNameAddresses(Array) #3 /home/puma1639/public_html/api/lib/classes/Swift/Mime/SimpleMimeEntity.php(592): Swift_Mime_Headers_MailboxHeader->setFieldBodyModel(Array) #4 /home/puma1639/public_html/api/lib/classes/Swift/Mime/SimpleMessage.php(213): Swift_Mime_SimpleMimeEntity->_setHeaderFieldModel('From', Array) #5 /home/p in /home/puma1639/public_html/api/lib/classes/Swift/Mime/Headers/MailboxHeader.php on line 348 Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 31 мая, 2016 Жалоба Поделиться Опубликовано 31 мая, 2016 Пробуйте ставить адрес без излишеств, то естьlutsk40@gmail.comвместоAndrei Shenduh <lutsk40@gmail.com> Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.