PrestaShop7 мин чтения

Настройка SMTP в PrestaShop

PrestaShop по умолчанию отправляет письма через PHP mail(), которая не проходит аутентификацию Gmail и Outlook. Здесь полная пошаговая инструкция переключения на SMTP, настройки DNS-записей и проверки через seed-тест.

PrestaShop питает сотни тысяч интернет-магазинов по всему миру, но его стандартная транспортировка писем совершенно не подходит для современных Gmail, Outlook и Yahoo. По умолчанию PrestaShop отправляет трансакционные письма через PHP-функцию mail(), которая передаёт сообщение на локальный MTA на IP вашего хостера. При этом: SPF не проходит, DKIM отсутствует, DMARC не валидирует письмо. Письмо идёт прямо в спам. Решение простое: включить SMTP-провайдера, опубликовать три DNS-записи, затем проверить через seed-тест.

Диагноз в одну строку

Если письма из PrestaShop не доходят или падают в спам, замените Использовать встроенную функцию PHP mail() на Установить свои параметры SMTP в разделе Параметры → Email, укажите данные провайдера (Postmark, SendGrid или Brevo) и опубликуйте SPF + DKIM + DMARC для своего домена. Это закрывает 90% жалоб на доставку.

Почему PHP mail() в PrestaShop приводит в спам

В PrestaShop модуль Mail предлагает три опции: Никогда не отправлять письма, Использовать функцию mail() PHP и Установить свои параметры SMTP. По умолчанию выбрана вторая опция — и здесь начинаются неприятности.

Функция PHP mail() передаёт письмо локальному MTA на сервере, где установлена PrestaShop. Этот сервер:

  • Использует shared IP, который не авторизован в вашей SPF-записи.
  • Подписывает письма DKIM-ключом домена хостера, а не вашего домена.
  • Не имеет отдельной репутации по доменам — репутация IP смешана из всех сайтов на этом сервере.
  • Часто попадает на чёрные списки, потому что спамеры любят дешёвый shared-хостинг.

Gmail и Outlook перед маршрутизацией проверяют spf=, dkim= и dmarc= для From-домена и envelope-sender. Когда все три проверки не проходят, письмо летит в Spam — или отклоняется полностью.

Включаем SMTP в Back Office PrestaShop

SMTP-путь поднимает вас на провайдера с хорошей репутацией. Вот как это сделать.

  1. Входим в Back Office PrestaShop от имени администратора.
  2. Идём в Параметры → Email. Это верный путь для PrestaShop 1.7 и 8.x.
  3. В разделе Email выбираем Установить свои параметры SMTP (только для опытных пользователей).
  4. Заполняем поля:
    • Доменное имя почты: домен вашего магазина (например, shop.example.com).
    • SMTP-сервер: имя хоста провайдера.
    • Пользователь SMTP и Пароль SMTP: из личного кабинета провайдера.
    • Шифрование: TLS (порт 587) или SSL (порт 465).
    • Порт: 587 для TLS, 465 для SSL.
  5. Нажимаем Сохранить, затем используем блок Протестировать конфигурацию email внизу с вашим адресом.

Лучшие SMTP-провайдеры для PrestaShop

Не все провайдеры подходят для PrestaShop. Некоторые урезают объёмы, другие требуют домен старше 30 дней, третьи плохо обрабатывают soft-bounce. Три проверенных варианта:

Postmark:
  SMTP-сервер: smtp.postmarkapp.com
  Порт:        587 (TLS)
  Пользователь: <server API token>
  Пароль:      <server API token>
  Плюсы:       Трансакционная почта, отличная репутация, доставка за ~1с.

SendGrid:
  SMTP-сервер: smtp.sendgrid.net
  Порт:        587 (TLS)
  Пользователь: apikey
  Пароль:      <API key>
  Плюсы:       Щедрый free tier (100 писем/день), хорошая маршрутизация в ЕС.

Brevo (бывший Sendinblue):
  SMTP-сервер: smtp-relay.brevo.com
  Порт:        587 (TLS)
  Пользователь: ваш-логин@brevo.com
  Пароль:      <SMTP key>
  Плюсы:       EU-провайдер, хорош для GDPR-чувствительных магазинов.

Для совсем маленьких магазинов подойдёт Google Workspace SMTP, но вы упрётесь в лимит 2000 адресатов в сутки в бешеные дни вроде Black Friday. Для серьёзной работы — только специализированные провайдеры.

SPF, DKIM, DMARC — обязательны

Самого SMTP недостаточно для проверки аутентификации. Нужно сказать миру, что SMTP-провайдер авторизован отправлять письма от вашего домена.

  • SPF: одна TXT-запись на вершине домена. Пример для Postmark: v=spf1 a mx include:spf.mtasv.net ~all.
  • DKIM: провайдер генерирует открытый селектор (например, 20260101._domainkey.yourdomain.com). Вы публикуете CNAME или TXT, провайдер подписывает исходящие письма приватным ключом.
  • DMARC: TXT-запись на _dmarc.yourdomain.com. Начните с: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com.

Когда DNS пропагировался (обычно за 15 минут), отправьте себе тестовое письмо и посмотрите заголовки. Должны быть три зелёные строки: spf=pass, dkim=pass, dmarc=pass.

Модули для более надёжной доставки

Встроенный SMTP работает, но не имеет очереди, повторных попыток и аналитики. Модули из маркетплейса PrestaShop добавляют это и обычно окупают себя за месяц.

  • SMTP Mail Pro — платный модуль с очередью неудачных писем, повторами при soft-bounce и логированием ответов MTA.
  • Встроенные модули SendGrid / Mailgun — используют API провайдера вместо SMTP. Быстрее, лучше обработка ошибок, работают с большими вложениями.
  • Email Alerts Pro — расширяет встроенные оповещения PrestaShop новыми триггерами (брошенная корзина, товар снова в наличии, бонусные баллы).
Следите за From-адресом по умолчанию

PrestaShop часто использует контактный email магазина (например, noreply@yourdomain.com) как From-заголовок. Убедитесь, что этот ящик реально существует и что домен совпадает с доменом провайдера. From с другого домена, чем подписант DKIM, не пройдёт DMARC-выравнивание.

Seed-тест перед включением в production

Не верьте кнопке тестирования в Back Office — она только проверит, что SMTP-данные верны. Нужно увидеть, где реально приземляются письма по разным провайдерам.

  1. Создайте тестовый товар стоимостью ноль или один рубль.
  2. Оформите заказ с seed-адресом. Инструменты вроде бесплатного Inbox Check дают один адрес, который форвардит на 20+ реальных ящиков (Gmail, Outlook, Yahoo, Mail.ru, Yandex и прочие).
  3. Посмотрите размещение письма в каждом ящике: Входящие, Промо, Спам, Соцсети, Уведомления.
  4. В Gmail откройте заголовки письма. Проверьте: dkim=pass header.d=yourdomain.com. Если DKIM показывает домен провайдера — значит, ваши CNAME для DKIM не настроены.

Повторяйте этот тест после каждого крупного апдейта PrestaShop. Обновления модулей иногда перезаписывают настройку транспорта, молча возвращая вас на PHP mail.

Бесплатная проверка попадания в инбокс

Используйте бесплатный Inbox Check: один адрес, 20+ провайдеров (Gmail, Outlook, Mail.ru, Yandex, ProtonMail, Fastmail и другие). Отчёт за 2–3 минуты, никакой регистрации.

→ Запустить бесплатный тест

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

Почему PrestaShop по умолчанию использует PHP mail(), если он такой плохой?

Исторические причины. PrestaShop 1.x писали, когда shared-хостинг с рабочим sendmail был нормой и стандарты аутентификации были слабее. Современные Gmail и Outlook требуют SPF + DKIM + DMARC, что через PHP mail() невозможно реализовать.

Можно ли использовать почту через cPanel как SMTP?

Технически да, но вы наследуете репутацию IP хостера и все его проблемы с чёрными списками. Для чего-то серьёзнее тестового трафика используйте специализированный провайдер типа Postmark или SendGrid.

Нужен ли отдельный SMTP-аккаунт на каждый магазин в мультимаг setup?

Не обязательно. Один провайдер может аутентифицировать несколько доменов, если добавить DKIM-записи для каждого. Back Office позволяет ставить разные From-адреса на каждый магазин при одном SMTP-реле.

Как отладить, если SMTP просто молча падает?

Включите режим отладки в PrestaShop (Параметры → Производительность) и смотрите var/logs/. PHPMailer логирует туда все ошибки. Типичные причины: неверный порт, заблокирован исходящий 587, истёк API-ключ.
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+ ящиков · Живые результаты · Аккаунт не нужен