Нічого не знайдено

Спробуйте інший пошуковий запит

Популярні запити:

Додати в кошик

Кошик

У вас поки немає покупок

Переглянути маркетплейс

Налаштування пошти в OpenCart: SMTP і типові помилки

Як налаштувати відправку листів в OpenCart через SMTP: доменна пошта і Gmail, префікс ssl://, чому листи летять у спам і як читати журнал помилок.

7 хв читання
114
1
Налаштування пошти в OpenCart: SMTP і типові помилки

Замовлення в магазині є, а листів про них немає. Клієнт оформив покупку й чекає підтвердження, менеджер дізнається про нове замовлення тільки коли сам зайде в адмінку, а форма зворотного зв'язку мовчить уже місяць, і ніхто цього не помітив. Так виглядає магазин, у якому пошту залишили «як було після встановлення».

Проблема в тому, що після встановлення OpenCart відправляє листи через PHP-функцію mail(). Іноді це навіть працює. Але саме «іноді» і є діагнозом: частина листів доходить, частина осідає у спамі, частина зникає без сліду, і зрозуміти закономірність неможливо. Нижче розберемо, як перевести магазин на SMTP і чому це не примха, а базова гігієна.


Де живуть налаштування

Адмінка → Система → Налаштування, кнопка редагування магазину, вкладка «Пошта». В OpenCart 3.x головне поле називається «Поштовий рушій» (Mail Engine), у 2.x — «Поштовий протокол». Суть однакова: два варіанти, Mail і SMTP.

Поруч на тій самій вкладці ще одна річ, про яку часто забувають: секція сповіщень. Там задається додаткова адреса (або кілька, через кому), куди летять копії службових листів, і галочки — про що саме повідомляти: нові замовлення, реєстрації, відгуки. Якщо менеджер не отримує листи про замовлення, у половині випадків причина банальна: адресу сюди просто не вписали.

Ще одна адреса, яка бере участь у процесі, живе на вкладці «Магазин» — це основний E-Mail магазину. Саме він підставляється у поле «Від кого». Запам'ятайте цей факт, він ще вистрілить у розділі про спам.


Чому режим Mail — це лотерея

Функція mail() віддає лист локальному поштовому агенту сервера (sendmail, exim), і далі той сам домовляється зі світом. Без авторизації, без гарантій, часто з IP-адреси, з якої шлють пошту ще сотні сайтів на тому ж сервері. Gmail і Outlook дивляться на такі листи з підозрою за замовчуванням: відправника ніхто не автентифікував, репутація IP невідома або зіпсована сусідами.

На частині хостингів mail() взагалі вимкнена або обрізана лімітами, і магазин при цьому не показує жодної помилки: OpenCart вважає, що лист відправлено, бо функція повернула true. Лист при цьому нікуди не пішов. Це найпідступніший сценарій, бо в журналі помилок порожньо, а клієнти мовчки не отримують підтверджень.

Єдиний сценарій, де Mail ще має сенс: тимчасовий тестовий магазин на локальному сервері. Для бойового магазину відповідь одна — SMTP. Якщо все ж залишаєтеся на Mail, впишіть у поле «Параметри пошти» рядок виду [email protected]: це підставить коректну адресу відправника на рівні sendmail і трохи зменшить шанси потрапити у спам. Але це милиця, а не рішення.


Налаштовуємо SMTP: доменна пошта

Найкращий варіант для магазину — скринька на власному домені, наприклад [email protected]. Вона або вже входить у ваш хостинг-тариф, або створюється в панелі за хвилину. Параметри для OpenCart виглядають так:

Поштовий рушій:  SMTP
SMTP хост:       ssl://mail.vashdomen.ua
SMTP логін:      shop@vashdomen.ua
SMTP пароль:     пароль від скриньки
SMTP порт:       465
SMTP таймаут:    5

Тут собака зарита у префіксі ssl://. OpenCart не вміє сам здогадатися, що з'єднання шифроване: він відкриває сокет рівно на той рядок, який ви вписали в поле хоста.

Класична помилка виглядає так:

Неправильно: хост mail.vashdomen.ua, порт 465 → з'єднання висне, у журналі таймаут. 

Правильно: хост ssl://mail.vashdomen.ua, порт 465 → лист іде.

Порт 587 зі STARTTLS у стандартному OpenCart працює нестабільно: підтримка залежить від конкретної збірки 3.0.3.x, а у 2.x її немає зовсім. Не витрачайте час на експерименти, зв'язка ssl:// + 465 працює скрізь однаково. Порт 25 навіть не пробуйте: більшість хостингів і провайдерів його блокують для вихідних з'єднань, це стара міра проти спам-ботів.

Логін завжди пишеться повністю, з доменом. shop замість [email protected] — друга за популярністю причина помилки «Password not accepted from server», одразу після банальної одруківки в паролі.


Налаштовуємо SMTP: Gmail

Варіант для старту, коли доменної пошти ще немає. Але з 2022 року Google не приймає звичайний пароль акаунта від сторонніх програм, і OpenCart для нього — саме така програма. Потрібен пароль застосунку: в акаунті Google увімкніть двоетапну перевірку, потім у розділі безпеки створіть «Пароль застосунку». Отримаєте 16 символів — саме їх і вписуйте в поле пароля:

SMTP хост:    ssl://smtp.gmail.com
SMTP логін:   vashapochta@gmail.com
SMTP пароль:  пароль застосунку (16 символів)
SMTP порт:    465

Тепер чесно про обмеження, бо їх два і обидва суттєві. Перше: ліміт близько 500 листів на добу для звичайного акаунта. Магазину на старті вистачить, магазину з розсилками — ні. Друге неприємніше: Gmail примусово підставляє адресу акаунта в поле «Від кого», що б не стояло в налаштуваннях магазину. Клієнт отримує підтвердження замовлення від [email protected], і довіри до магазину це не додає. Тому Gmail — тимчасове рішення на перші тижні, не більше.


Листи йдуть, але в спам

Найчастіша скарга після переходу на SMTP: технічно все працює, а листи однаково осідають у «Спамі». Причина майже завжди у розбіжності між тим, хто відправляє, і тим, від чийого імені лист підписаний.

Перевірте три речі по черзі.

Перше: E-Mail магазину на вкладці «Магазин» має збігатися зі скринькою, через яку йде SMTP. Відправляєте через [email protected], а у «Від кого» стоїть [email protected] — для поштових фільтрів це виглядає як підробка відправника, і лист карається одразу.

Друге: SPF-запис у DNS домену. Це TXT-запис, який каже світу, яким серверам дозволено слати пошту від імені вашого домену. Для пошти на хостингу він зазвичай уже прописаний або додається однією кнопкою в панелі; типовий вигляд — v=spf1 +a +mx ~all. Перевірити наявність можна будь-яким онлайн-інструментом на кшталт mxtoolbox: вводите домен і одразу бачите, чи є запис і що в ньому.

Третє: DKIM, криптографічний підпис листів. У більшості панелей керування вмикається одним перемикачем у налаштуваннях поштового домену. Після SPF і DKIM має сенс додати ще й DMARC-запис, хоча б у м'якому режимі p=none: Gmail з 2024 року дедалі жорсткіший до доменів без нього.

Звучить як багато роботи, але на практиці це хвилин двадцять один раз. І саме ці двадцять хвилин відрізняють магазин, чиї листи читають, від магазину, чиї листи ніхто ніколи не бачить.


Як діагностувати, коли не працює

OpenCart пише поштові помилки у журнал: Система → Обслуговування → Журнал помилок, фізично це файл system/storage/logs/error.log. Найшвидший спосіб згенерувати тестовий лист без оформлення замовлення — форма зворотного зв'язку на сторінці «Контакти» або відновлення пароля клієнта.

Типові записи в журналі і що вони означають:

Error: Password not accepted from server! — невірний пароль, логін без домену, або для Gmail використано звичайний пароль замість пароля застосунку.

Error: MAIL not accepted from server! — сервер відмовився приймати адресу відправника. Найчастіше E-Mail магазину не збігається з акаунтом SMTP.

Таймаут або порожнє зависання при відправці — з'єднання не встановилося. Перевірте префікс ssl:// у хості й те, що порт саме 465. Якщо і це не допомагає, порт може різати файрвол хостингу: одне звернення в підтримку зазвичай закриває питання.

Окремий підступний випадок: у журналі чисто, магазин рапортує про успіх, а листів немає. Це майже завжди режим Mail, про який ішлося вище. Функція відзвітувала «відправлено», sendmail лист поховав. Переходьте на SMTP і проблема зникне.


Кому вбудованого SMTP не вистачить

Заради чесності: штатний механізм OpenCart шле листи синхронно, прямо під час оформлення замовлення. Якщо SMTP-сервер відповідає повільно, покупець ці секунди дивиться на спінер після натискання «Підтвердити замовлення». Для магазину з десятками замовлень на день це непомітно. Для магазину, який шле тисячі транзакційних листів, або хоче красиву аналітику доставки й відкриттів, розумніше дивитися в бік спеціалізованих сервісів (SendPulse, Mailgun і подібних) через відповідний модуль. Але це вже інший масштаб задачі; для більшості українських магазинів доменна скринька через SMTP закриває питання повністю.


Чек-лист

  1. Створіть скриньку на власному домені виду [email protected].
  2. В адмінці: Система → Налаштування → Пошта, рушій SMTP.
  3. Хост із префіксом: ssl://mail.vashdomen.ua, порт 465, логін повністю з доменом.
  4. Звірте E-Mail магазину на вкладці «Магазин» з акаунтом SMTP — вони мають збігатися.
  5. Впишіть адреси менеджерів у додаткові сповіщення й поставте галочку на замовленнях.
  6. Перевірте в DNS записи SPF і DKIM, додайте DMARC хоча б із p=none.
  7. Надішліть тестовий лист через форму контактів на Gmail і на Outlook, перевірте папку «Спам» в обох.
  8. Загляньте в Журнал помилок: після тесту там має бути порожньо.
OCTemplates

OCTemplates

OCTemplates — команда розробників та дизайнерів з України з досвідом у веброзробці з 2002 року. З 2015 року спеціалізуються на шаблонах та модулях для OpenCart: швидких, SEO-оптимізованих і готових до роботи в реальних умовах e-commerce. Продукти OCTemplates використовують тисячі інтернет-магазинів у Європі, Азії, Північній Америці та Австралії. Кожен покупець отримує не лише готове рішення, а й технічну підтримку та консультації з налаштування магазину.

статей
11
переглядів
1,929
вподобання
3
підписників
0

Схожі статті

Коментарі (0)

Відповідь для

Увійдіть, щоб залишити коментар

Увійти

Коментарів поки немає

Будьте першим, хто залишить коментар до цієї статті!

Ми використовуємо cookies

Ми використовуємо cookies та схожі технології для покращення вашого досвіду, аналізу трафіку та показу персоналізованої реклами. Детальніше — у нашій Політиці cookies.