По умолчанию OpenCart отправляет письма функцией PHP mail(), поэтому на большинстве хостингов уведомления о заказах молча пропадают. Переключение на SMTP — это одна вкладка, но с одной особенностью, на которой спотыкаются почти все: шифрование в OpenCart задаётся префиксом в имени хоста, а не отдельной настройкой.
| Параметр | Значение |
|---|---|
| SMTP-хост | smtp.fmailer.ru |
| Порт | 587 |
| Шифрование | STARTTLS (соединение переводится в TLS до авторизации) |
| Логин | Логин SMTP-токена вашего домена |
| Пароль | Пароль этого токена — показывается один раз, при создании |
Перейдите в Система → Настройки, откройте магазин на редактирование и выберите вкладку «Почта»:
| Поле | Значение |
|---|---|
| Почтовый движок | SMTP |
| Хост SMTP | tls://smtp.fmailer.ru |
| Логин SMTP | Логин SMTP-токена вашего домена |
| Пароль SMTP | Пароль этого токена |
| Порт SMTP | 587 |
| Таймаут SMTP | 5 |
tls://smtp.fmailer.ru с портом 587 либо ssl://smtp.fmailer.ru с портом 465. Хост без префикса открывает нешифрованное соединение, и авторизация будет отклонена. На вкладке «Магазин» той же страницы укажите в поле E-Mail адрес на подтверждённом домене. Личный адрес на Яндексе или Mail.ru не позволит DKIM и SPF сойтись, и чеки будут фильтроваться.
Ниже на вкладке «Почта» блок «Оповещения» определяет, о чём уведомлять владельца магазина — новые заказы, регистрации, заявки партнёров. Письма покупателям управляются отдельно, статусами заказов в разделе Система → Локализация → Статусы заказов.
Кнопки проверки в OpenCart нет. Оформите тестовый заказ или запросите восстановление пароля на странице входа покупателя — оба сценария идут через тот же почтовый движок. Если ничего не пришло, смотрите Система → Обслуживание → Журнал ошибок.
| Симптом | Причина и решение |
|---|---|
Error: SMTP connection failed | Нет префикса tls:// либо заблокирован порт — попробуйте 8587. |
| Отказ авторизации | Неверные доступы либо соединение нешифрованное из-за отсутствия префикса. |
| Белый экран при сохранении | Подавленная ошибка PHP — чаще всего не включено расширение openssl. |
| Соединение сразу закрывается | Пустое поле таймаута. Поставьте 5. |
| Владельцу письма приходят, покупателю — нет | У статуса заказа не включено уведомление покупателя. |
| Письма в спаме | Адрес магазина не на подтверждённом домене. |
Система → Настройки → редактирование магазина → вкладка «Почта». Выберите почтовый движок SMTP, после чего станут значимыми поля хоста, логина, пароля, порта и таймаута. В OpenCart 3 и 4 это одна и та же панель.
У OpenCart нет отдельной настройки шифрования. Имя хоста передаётся прямо в потоковые функции PHP, поэтому транспорт выбирается префиксом схемы: tls://хост с портом 587 либо ssl://хост с портом 465. Без префикса соединение открывается нешифрованным, и сервер откажет в авторизации.
Сначала проверьте, что почтовый движок переключён на SMTP, а не на «Mail» — вариант по умолчанию использует функцию PHP mail(), которую большинство хостингов не поддерживает. Затем посмотрите настройки оповещений на той же вкладке: уведомление покупателю и уведомление владельцу магазина настраиваются отдельно.
Оставьте 5 секунд или чуть больше. Поле часто оставляют пустым, и на части сборок PHP из-за этого соединение обрывается сразу. Это не задержка отправки, а время ожидания ответа сервера.
Адрес магазина в разделе Система → Настройки → вкладка «Магазин» должен быть на подтверждённом домене. Магазины часто оставляют там адрес на Яндексе или Mail.ru, который не может сойтись с вашей подписью DKIM и записью SPF, поэтому DMARC не проходит.
Обычно это подавленная ошибка PHP. Посмотрите журнал в разделе Система → Обслуживание → Журнал ошибок и лог PHP: чаще всего не подключено расширение openssl, без которого SMTP поверх TLS работать не может.