Спустя какое-то время. тот магазин. который я делал уже перестал существовать, и дело был не в сайте, а в том что магазин тупо закрылся. Но это совсем не повод забывать об этой CMS системе, которую, для себя, я называю «OpenАд». Я уже успел написать пару статей об этом создании, а это будет третьей, и тема ее будет про настройку почты. Кстати, речь идет о версии 1.5.6.. Есть ли эта ошибка в новых версиях я не знаю, не проверял.
Казалось бы, чего сложного в настройках почты? Указал логин и пароль, smtp сервер или выбрал mail способ доставки почты, но нет. В OpenCart даже тут есть проблема, а проблема заключается в следующей ошибке:
Эта ошибка возникла после того, как я указал smtp сервер, логин, пароль, порт для подключения pdd почты от Яндекса.
Собственно, чтобы решить эту проблему, в настройках, на вкладке «Почта», делаем следующее:
- выбираем протокол: SMTP;
- в SMTP Host вписываем: ssl://smtp.yandex.ru (без ssl будет ошибка «EHLO not accepted from server!»)
- в SMTP Login вписываем: [email protected]
- в SMTP пароль вписываем свой пароль
- в SMTP порт вписываем 465 порт
- в SMTP таймаут вписываем: 5
Далее, открываем файл /system/library/mail.php любимым редактором, находим эти строки:
и заменяем из на эти:
то есть заменяем from на username, обойдя ошибку отказа сервере о том что «е-mail отправителя не принадлежит пользователю, который авторизовался в системе». После этого почта у вас начнет работать как часы.
I am getting the below error when trying to send a mail from my store.
Source code of mail.php is as below:
FYI: I have already tried the solution mentioned here
2 Answers 2
By changing SMTP Timeout to 60 seconds, I was able to resolve this issue. Obviously that’s too long, but your server’s negotiation with Gmail is taking longer than expected.
When you encounter that issue, it is because the server hasn’t received a reply before the timeout period. Likely due to anti-spam filtering of some sort on your server.
Because relaying is disallowed by zoho, you can’t use zoho to send such emails (customized from) without changing your opencart mail code.
✎ Опубликовано: 04.12.2017 ☕ Просмотров: 7169 ✉ Комментарии: 1
Все ошибки при работе с почтой — разбор причин и методы как их устранить
Приветствую! Сегодня я хочу рассказать о ошибках почты и как с ними бороться. Но сразу надо уточнить что ошибки эти актуальны для 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 и строки
После правильной настройки smtp у нас почта как правило пойдет не в спам — а куда надо, мало того, когда мы нажмем ответить — ответ пойдет отправителю.
Источник: