E-commerce: OpenCart8 мин чтения

OpenCart письма попадают в спам? Сначала исправьте почтовый движок.

OpenCart по умолчанию включает PHP mail() на общем хостинге. Эта схема не проходит SPF, не имеет DKIM и попадает в карантин Gmail и Outlook в течение часов. Вот конкретный чек-лист исправлений и план seed-теста.

OpenCart — популярная CMS для онлайн-магазинов, но «из коробки» она имеет один из худших конфигов для транзакционных писем. Подтверждения заказов, сброс пароля, письма-уведомления — всё проходит через локальный бинарный sendmail хостинг-провайдера через функцию PHP mail(). Это означает, что письма уходят с return-path на IP хостинга, без подписи DKIM и без правильного SPF. Результат — почти гарантированное попадание в спам, особенно в Gmail и Outlook.

Краткий диагноз

Если письма OpenCart постоянно не доходят или приземляются в Спам, фикс почти всегда один: переключить Mail Engine с Mail на SMTP, привязать к проверенному отправителю (Google Workspace, Zoho, SendGrid, Postmark, Brevo) и убедиться, что домен From имеет SPF, DKIM и DMARC, настроенные на этот провайдер.

Почему дефолтные параметры OpenCart ломают доставляемость

Когда вы устанавливаете OpenCart и оставляете Mail Engine в значении по умолчанию Mail, каждое исходящее письмо передаётся функции PHP mail(). PHP в свою очередь пропускает сообщение локальному MTA на хостинге (обычно Postfix или Exim). Оттуда письмо доставляется напрямую с IP общего хостинга к получателю.

В этом подходе четыре фундаментальные проблемы:

  • SPF проверка не проходит. SPF запись вашего домена почти наверняка не содержит IP общего хостинга. Gmail, Outlook и Yahoo проверяют SPF на envelope sender и сразу же помечают письмо как неаутентифицированное.
  • Нет подписи DKIM. MTA хостинга подписывает письма своим доменом, а не вашим. Поэтому либо DKIM отсутствует, либо не проходит проверку выравнивания.
  • DMARC выравнивание не срабатывает. При неработающем SPF и отсутствующем DKIM любая DMARC политика на домене From отклоняет или помещает в карантин письмо.
  • IP хостинги заранее занесены в чёрные списки. Бюджетные хосты запускают тысячи сайтов на одном IP-пуле. Одного спамера соседа достаточно, чтобы затянуть письма вашего магазина в Спам.

Фикс 1: Переключение OpenCart на SMTP

Самое важное изменение из всех. В админ-панели OpenCart:

  1. Перейдите в System → Settings и нажмите Edit на вашем магазине.
  2. Откройте вкладку Mail.
  3. Измените Mail Engine с Mail на SMTP.
  4. Заполните SMTP Hostname, Username, Password, Port и SMTP Timeout для выбранного провайдера.
  5. Установите Mail Protocol Prefix в tls://, если ваш провайдер требует TLS на порту 587, или ssl:// на порту 465. Оставьте пусто для простого 25 (не рекомендуется).

Типичные значения SMTP для популярных провайдеров:

Google Workspace (SMTP relay):
  Host:     smtp-relay.gmail.com
  Port:     587  (tls://)
  Username: ваш-пользователь@вашдомен.ru
  Password: App password (не ваш пароль Google)

SendGrid:
  Host:     smtp.sendgrid.net
  Port:     587  (tls://)
  Username: apikey
  Password: <ваш SendGrid API ключ>

Postmark:
  Host:     smtp.postmarkapp.com
  Port:     587  (tls://)
  Username: <server API token>
  Password: <server API token>

Brevo (ex-Sendinblue):
  Host:     smtp-relay.brevo.com
  Port:     587  (tls://)
  Username: ваш-логин-brevo@brevo.com
  Password: <ваш SMTP ключ>

После сохранения запустите сброс пароля или разместите тестовый заказ самому себе. Проверьте заголовки письма. Если Return-Path показывает домен провайдера и DKIM показывает d=ваш-домен.ru, переключение сработало.

Фикс 2: Опубликуйте SPF, DKIM и DMARC для вашего домена

Сам по себе SMTP не решает проблему доставляемости. Домен From всё ещё должен авторизовать SMTP провайдера. Каждый провайдер даёт вам набор DNS записей — обычно один SPF include, две-три CNAME для DKIM и базовую DMARC политику.

  • SPF: добавьте клаузулу include: провайдера. Пример для SendGrid: v=spf1 include:sendgrid.net -all.
  • DKIM: опубликуйте CNAME записи, которые даёт провайдер. Они указывают на управляемые провайдером ключи. Не копируйте ключи из туториалов — используйте те, что сгенерированы для вашего аккаунта.
  • DMARC: начните с v=DMARC1; p=none; rua=mailto:вы@ваш-домен.ru, смотрите агрегирующие отчёты неделю, потом переходите на p=quarantine.
Если вы не можете установить SMTP модуль

Некоторые общие хосты блокируют исходящий порт 587. В этом случае у вас два варианта: свяжитесь с хостом и попросите его открыть, или используйте провайдера, который принимает отправку через API (Postmark, SendGrid, Mailgun) через лёгкое расширение OpenCart вместо встроенного SMTP.

Фикс 3: Установите расширение для работы с почтой

Встроенный SMTP клиент OpenCart функционален, но ограничен. Он не ставит в очередь неудачные письма, не повторяет попытки и не логирует отправку. Для магазинов с большим объёмом писем отдельное расширение стоит своих денег.

  • SMTP by Various — самый распространённый бесплатный вариант на маркетплейсе OpenCart. Добавляет повторные попытки и более хороший логинг ошибок поверх стандартного движка.
  • Mailgun / SendGrid API модули — полностью обходят SMTP и отправляют через API провайдера. Быстрее на медленных хостах и лучше работают с большими вложениями.
  • AMP for Email расширения — если вы хотите интерактивные подтверждения заказов в Gmail, эти добавляют AMP-отрендеренные шаблоны поверх стандартного конвейера почты.

Seed-тест перед запуском

После того как SMTP и DNS установлены, не полагайтесь на авось. Тестируйте. Самый простой путь:

  1. Создайте тестовый заказ, используя фиктивный товар с ценой ноль или одна копейка.
  2. Подставьте в поле email дюжину seed-ящиков (Gmail, Outlook, Yahoo, iCloud, ProtonMail, GMX и т.д.) — один за один или в батче.
  3. Проверьте, где каждое письмо оказалось: Входящие, Promotions, Спам или вообще не пришло. Инструмент вроде этого бесплатного инбокс-чекера запускает всю сетку за один тест.
  4. Посмотрите заголовки копии в Gmail. Ищите dkim=pass, spf=pass и dmarc=pass все по вашему домену.

Если какой-то провайдер показывает размещение в Спаме, исправьте именно этот провайдер перед запуском. Gmail обычно первым прощает; Outlook и Mail.ru медлительнее восстанавливают доверие.

Постоянно: подогрев репутации отправителя

Магазин, который раньше отправлял с плохого общего хостинга, имеет нулевую или негативную репутацию у крупных почтовых провайдеров. Переход на чистый SMTP провайдер необходим, но не мгновенен. Ожидайте две-три недели подогрева, в течение которых вы должны:

  • Начните с низкого объёма: только реальные заказы, без рассылок.
  • Держите содержание письма неизменным неделю за неделей, чтобы сигналы репутации стабилизировались.
  • Мониторьте агрегирующие отчёты DMARC — они первые предупреждают об отклонениях выравнивания.
  • Повторяйте seed-тест еженедельно в течение первого месяца, потом ежемесячно.
OpenCart интеграция в бета

Встроенная интеграция OpenCart находится в приватной бета. Она подключается к событию подтверждения заказа OpenCart, seed-тестирует копию через 20+ почтовых провайдеров и оповещает вас в админ-панели, если размещение падает.

→ Присоединиться к списку ожидания бета

Частые вопросы

Можно ли просто использовать Gmail SMTP для моего магазина OpenCart?

Да, для очень низкого объёма (примерно до 500 писем в день). Gmail SMTP имеет жёсткий лимит 2000/день и будет сильно дросселировать, если вы его приблизитесь. Для реального магазина используйте Google Workspace relay, SendGrid или Postmark.

Нужен ли DKIM, если у меня есть SPF?

Да. Gmail и Yahoo теперь требуют, чтобы и SPF, и DKIM прошли выравнивание для массовых отправителей. Большинство транзакционных провайдеров настраивают DKIM для вас с помощью нескольких CNAME — нет причин его пропускать.

Почему мои письма приземляются в Promotions вместо Inbox в Gmail?

Promotions это не спам — Gmail просто категоризирует коммерческую почту туда. Подтверждения заказов с правильной аутентификацией обычно со временем переходят в основной инбокс. Если они остаются в Promotions, проверьте шаблон: меньше картинок и более короткий маркетинговый текст помогают.

Как долго OpenCart доставка восстанавливается после исправления?

Ожидайте 48–72 часа перед тем, как Gmail узнает аутентифицированного отправителя, неделю для Outlook, и до двух недель для Yahoo и Mail.ru, чтобы восстановить репутацию.
Related reading
Found this useful? Share it
AB
Об авторе
Artem Berezin
B2B Deliverability Specialist

B2B deliverability specialist with 5+ years of hands-on outreach experience. Built campaigns reaching 90,000+ inboxes across 20+ countries — and fixed the deliverability problems that came with that scale.

Проверьте доставляемость в 20+ провайдерах

Gmail, Outlook, Yahoo, Mail.ru, Яндекс, GMX, ProtonMail и другие. Реальные скриншоты входящих, SPF/DKIM/DMARC, вердикты спам-фильтров. Бесплатно, без регистрации.

Запустить тест →

Тесты без ограничений · 20+ ящиков · Живые результаты · Аккаунт не нужен