Исправление ошибок при отправке почты с сайта на Opencart

категория: , Полезности


Опубликовано: 04.12.2017 Просмотров: 37 Комментарии: 0


Исправление ошибок при отправке почты с сайта на Opencart

Все ошибки при работе с почтой - разбор причин и методы как их устранить


Приветствую! Сегодня я хочу рассказать о ошибках почты и как с ними бороться. Но сразу надо уточнить что ошибки эти актуальны для smtp а не для функции php mail(); Я думаю что нормальные магазины работают только с smtp - это безусловно лучше чем слать письма с сайта через стандартную функцию в php.

Для отправки почты в Opencart используется библиотека system/library/mail.php - и мы поговорим об ошибках которые могут возникать и способы их решения.

Все ошибки, которые могут быть при отправки почты

  • Error: E-Mail to required
  • Error: E-Mail from required
  • Error: E-Mail sender required
  • Error: E-Mail subject required
  • Error: E-Mail message required
  • Error: EHLO not accepted from server
  • Error: STARTTLS not accepted from server
  • Error: AUTH LOGIN not accepted from server
  • Error: Username not accepted from server
  • Error: Password not accepted from server
  • Error: HELO not accepted from server
  • Error: MAIL FROM not accepted from server

Error: E-Mail to required - это ошибка будет тогда, когда нет данных куда отправлять письмо, попросту либо почта не настроена в админке, либо форма не передает данные в библиотеку для отправки. Для исправления убедитесь что в скрипте отправки есть строка $mail->setTo где и должна быть переменная куда слать почту. Как правило это админ сайта.

Error: E-Mail from required - ошибка возникает когда пытаются отправить почту, но не указали от какого адреса отправлять. Это может быть из-за того что либо не указали почту, а нет валидации, либо скрипт неправильно настроен. Строка $mail->setFrom как раз отвечает за то от кого идет письмо.

Error: E-Mail sender required - все просто, не указано от кого отправка. Не путать с email from. Как раз от кого это и высвечивается на почте, сюда идет либо почта человека, либо его имя. Задать можно через $mail->setSender("От кого почта");

Error: E-Mail message required - пустое письмо. Для решения проблемы необходимо указать через $mail->setText или $mail->setHtml тело письма.

Error: EHLO not accepted from server - эта ошибка возникает при неправильных настройках почтового сервера. Часто надо просто указать перед почтовым сервером ssl:// или tls:// - это переводит отправку почты по защищенному протоколу. Также надо указать порт 465 иначе будет эта ошибка. Эти настройки есть в админке в настройка - вкладка почта.

Error: STARTTLS not accepted from server - ошибка tls -соединения. В таком случае надо смотреть на настройки и узнавать какой порт и настройки нужны для корректной работы через tls на почтовом сервере.

Error: AUTH LOGIN not accepted from server - неправильный логин. Смотрите настройки почты и почтового сервера.

Error: Username not accepted from server - неправильное ммя пользователя.

Error: Password not accepted from server - ошибка может быть из-за либо неправильного пароля, либо из-за не существующей почты. Это часто из-за того что на сервере почта еще не создана и письмо пытаемся отправить, либо пароль надо проверить с логином.

Error: HELO not accepted from server - некоторые хостинги блокирую работу по защищенному протоколу почты  ssl по-этому либо надо разблокировать, либо перейти на 25 порт и без ssl:// или tls:// в начале smtp сервера

Error: MAIL FROM not accepted from server - самая частая ошибка возникающая при отправке почты с формы обратной связи. Лечится очень просто. Идем в файл catalog/controller/information/contact.php и строки

$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->request->post['email']);
$mail->setSender($this->request->post['name']);

меняем на эти

$mail->setTo($this->config->get('config_email')); //почта куда, как правило админ магазина
$mail->setFrom($this->config->get('config_mail_smtp_username')); //почта от кого, сюда идет логин в smtp
$mail->setSender(html_entity_decode($this->request->post['email'], ENT_QUOTES, 'UTF-8')); //это почта от кого придет письмо
$mail->setReplyTo($this->request->post['email']); //почта куда будет идти ответ в случае ответа на письмо

После правильной настройки smtp у нас почта как правило пойдет не в спам - а куда надо, мало того, когда мы нажмем ответить - ответ пойдет отправителю.


Комментарии:


Быстрый поиск

Похожее

Новое на сайте