Brevo SMTP: настройка, параметры и руководство по устранению неполадок

Настройте Brevo SMTP правильно: адрес сервера, порты 587, 465 и 2525, ключи SMTP, аутентификация домена, примеры для WordPress и кода, лимиты и разбор ошибок.

Brevo SMTP
Brevo SMTP?

Brevo SMTP уводит исходящую почту приложения с локального почтового агента веб-хостинга на инфраструктуру, которая аутентифицирует, логирует и отчитывается по каждому сообщению. Настройка небольшая: одно имя хоста, один порт, два учётных значения. Ошибиться тоже несложно, и сбои происходят тихо. Это руководство закрывает параметры, модель учётных данных, работу с DNS, от которой зависит доставка, и ошибки, с которыми вы столкнётесь при неверной настройке любой из частей. Если вы всё ещё выбираете провайдера, сначала сравните рынок с помощью более широкого руководства по SMTP-сервисам для почты.

Что такое Brevo SMTP

Brevo описывает Brevo SMTP как свой сервис SMTP-релея. Ваше приложение, сайт или почтовый сервер передают сообщение релею по аутентифицированному соединению, а Brevo берёт на себя маршрутизацию, повторы, репутацию и отчётность. Статистика по перенаправленной почте видна рядом со статистикой кампаний, а жёсткий отказ автоматически заносит контакт в блок-лист.

Релей создан для транзакционных сообщений: сброса паролей, чеков, подтверждений заказов, уведомлений об аккаунте. Если граница между ними и маркетинговой почтой пока не очевидна, её объясняет материал что такое транзакционное письмо.

SMTP или REST API

Оба пути ведут на одну платформу. Практическое разделение:

Используйте SMTP, когдаИспользуйте REST API, когда
Система говорит только по SMTP (WordPress, Postfix, ERP, почтовый клиент)Вы пишете интеграцию сами и хотите структурированные ошибки
Вы переносите существующую конфигурацию SMTP и хотите минимум измененийВам нужны пакетная отправка, планирование или ключи идемпотентности

Одно жёсткое ограничение: документация Brevo для разработчиков указывает, что SMTP-релей не поддерживает пакетную отправку, и направляет пакетные операции на эндпоинты API.

Создание учётных данных SMTP

Аутентификация SMTP в Brevo использует два значения, которые легко спутать с уже имеющимися у вас учётными данными.

Найдите свой логин SMTP

Логин SMTP не является адресом почты вашего аккаунта Brevo. Это отдельный идентификатор, показанный в поле Login на странице Settings, SMTP and API, в формате [email protected].

Отсюда следуют два правила, оба из документации Brevo по устранению неполадок. Не вписывайте smtp-relay.brevo.com в поле имени пользователя: это хост релея, а не ваш логин. И не подставляйте логин SMTP в заголовок From, потому что он аутентифицирует вас, а не идентифицирует отправителя.

Сгенерируйте ключ SMTP

Паролем является ключ SMTP, а не пароль вашего аккаунта и не ключ API.

  1. Откройте выпадающее меню аккаунта и выберите Settings, затем SMTP and API.
  2. На вкладке SMTP нажмите Generate a new SMTP key.
  3. Назовите ключ по имени интеграции, которая будет им пользоваться.
  4. Выберите вариант. Standard является рекомендованным ключом из 64 символов; Short это ключ из 15 символов для клиентов, которые не справляются с длинными паролями.
  5. Задайте срок действия от 7 дней до 1 года или выберите вариант без истечения.
  6. Нажмите Generate и сразу скопируйте ключ целиком.

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

Параметры подключения

Значения, которые нужно ввести в любом клиенте или библиотеке:

ПараметрЗначение
Сервер SMTPsmtp-relay.brevo.com
Порт587, 465 или 2525
ШифрованиеОставьте пустым, если только не используете порт 465, которому нужен SSL или TLS
Имя пользователяВаш логин SMTP в формате [email protected]
ПарольВаш ключ SMTP

Выбор порта

ПортШифрованиеКогда использовать
587TLS, согласуется через STARTTLSПо умолчанию. Начинайте отсюда.
465SSL или TLS, неявно с момента подключенияКогда клиенту нужно изначально зашифрованное соединение
2525TLS, согласуется через STARTTLSКогда хостинг-провайдер блокирует 587

Brevo рекомендует 587 как вариант по умолчанию. Порт 465 когда-то был выделен под SMTP поверх SSL, затем объявлен устаревшим, но по-прежнему широко поддерживается и подходит, когда соединение должно быть зашифровано до первой команды. Порт 2525 не зарегистрирован в IETF или IANA, но его разрешает большинство провайдеров и облаков, что делает его запасным выходом при блокировке 587.

Поле шифрования сбивает с толку. Brevo просит оставлять его пустым, если вы не на 465. Это не значит, что соединение не зашифровано: на 587 и 2525 сервер объявляет STARTTLS, и любой вменяемый клиент повышает соединение до аутентификации. Это значит, что не нужно выбирать «SSL» при подключении к 587, потому что несовпадение порта и шифрования ломает аутентификацию даже с верными учётными данными.

Проверьте соединение до написания кода

Убедитесь, что релей отвечает и TLS согласуется, прежде чем отлаживать код приложения.

Terminal window
openssl s_client -starttls smtp -crlf -connect smtp-relay.brevo.com:587

Успешное рукопожатие заканчивается списком возможностей сервера с кодом 250, где должны быть STARTTLS и строка AUTH с перечислением PLAIN и LOGIN. Полное отсутствие приветствия является сетевой проблемой, а не проблемой учётных данных.

Аутентификация отправляющего домена

Это тот шаг, который пропускают, и именно он решает, дойдёт ли хоть что-нибудь. С 1 февраля 2024 года аутентификация домена стала обязательной по требованиям отправителей Gmail и Yahoo, а Brevo отмечает, что Microsoft объявила аналогичные стандарты 5 мая 2025 года. Неаутентифицированная почта фильтруется или отклоняется независимо от того, какой релей её отправил.

Какие записи запрашивает Brevo

ЗаписьТипНазначение
Код BrevoTXTПодтверждает, что вы владеете отправляющим доменом и управляете им
DKIM1 TXT или 2 CNAMEПодписывает сообщения, чтобы получатели видели изменения в пути
DMARCTXTСообщает принимающим серверам, что делать с подозрительной почтой, по политике none, quarantine или reject

Brevo может добавить эти записи автоматически, если вы войдёте в панель своего DNS-провайдера прямо из Brevo, либо вы копируете значения в зону DNS вручную. Какая форма DKIM вам достанется, зависит от аккаунта: две записи CNAME по умолчанию используют ключ 2048 бит, одиночная форма TXT, ключ 1024 бит.

Почему нет записи SPF

Ответ Brevo в FAQ однозначен: записи SPF и MX не требуются для аутентификации домена и выдаются только при настройке выделенного IP-адреса. На общей инфраструктуре Brevo контролирует обратный путь, поэтому аутентификацию несут DKIM и проверка владения. Если вы переезжаете от провайдера, который требовал include в SPF, не выдумывайте его: лишний include лишь рискует упереться в лимит DNS-запросов.

DMARC при этом важен, и Brevo публикует рабочую стартовую запись:

v=DMARC1; p=none; rua=mailto:[email protected]

Начните с p=none, чтобы получать сводные отчёты без риска для доставки, затем ужесточайте до quarantine и reject, когда все легитимные источники выровнены. Эту последовательность разбирает наше руководство по доставляемости писем.

Подтвердите отправителя

Каждый адрес в поле From должен быть подтверждённым отправителем или находиться на аутентифицированном домене. Новый отправитель подтверждается кодом из 6 цифр, который приходит на этот адрес, но отправители на аутентифицированном домене этот шаг пропускают, поэтому домен аутентифицируют первым. Бесплатные почтовые домены аутентифицировать нельзя, поэтому адрес From на gmail.com или outlook.com будет отклонён или отфильтрован.

Пошаговые интеграции

WordPress

WordPress передаёт исходящую почту функции wp_mail, которая обращается к тому, что предоставляет хостинг. Чтобы направить её через Brevo, нужен плагин.

  1. В боковом меню админки перейдите в Plugins, затем Add New Plugin.
  2. Найдите Brevo, установите «Newsletter, SMTP, Email marketing and Subscribe forms by Brevo» и активируйте плагин.
  3. Перейдите в Brevo, затем Home, и введите свой ключ Brevo API v3 в поле активации. На этом шаге нужен именно ключ API, потому что плагин также синхронизирует контакты. Нажмите Login.
  4. В разделе Transactional emails выберите Yes.
  5. Выберите существующего отправителя или создайте нового. Все письма WordPress будут уходить с этим именем и адресом отправителя.
  6. Введите адрес и нажмите Send email, чтобы отправить тест.

Часто встречаются две ошибки. Сообщение о том, что транзакционные письма не активированы, потому что ваш аккаунт Brevo SMTP не активирован, означает, что платформу должна включить поддержка Brevo. Сообщение о том, что SMTP использовать нельзя, потому что wp_mail объявлена другим процессом, означает конфликтующий плагин SMTP; отключайте остальные по одному.

Серверное приложение

Собственный пример Brevo на Node.js использует nodemailer и параметры выше:

const nodemailer = require("nodemailer");
const transporter = nodemailer.createTransport({
host: "smtp-relay.brevo.com",
port: 587,
secure: false, // true для 465, false для остальных портов
auth: {
user: process.env.BREVO_SMTP_LOGIN, // [email protected]
pass: process.env.BREVO_SMTP_KEY,
},
});
async function sendOrderConfirmation() {
const info = await transporter.sendMail({
from: '"Acme Support" <[email protected]>',
subject: "Ваш заказ подтверждён",
text: "Заказ 10482 подтверждён и будет отправлен в течение двух рабочих дней.",
});
console.log("Message sent:", info.messageId);
}
sendOrderConfirmation().catch(console.error);

Обратите внимание на secure: false для порта 587. Этот флаг управляет неявным TLS, а не тем, зашифровано ли соединение; nodemailer всё равно отправляет STARTTLS. Ставьте true только для 465.

Эквивалент на Python со стандартной библиотекой:

import smtplib, ssl
from email.message import EmailMessage
msg = EmailMessage()
msg["From"] = "Acme Support <[email protected]>"
msg["To"] = "[email protected]"
msg["Subject"] = "Ваш заказ подтверждён"
msg.set_content("Заказ 10482 подтверждён и будет отправлен в течение двух рабочих дней.")
with smtplib.SMTP("smtp-relay.brevo.com", 587, timeout=20) as server:
server.starttls(context=ssl.create_default_context())
server.login(BREVO_SMTP_LOGIN, BREVO_SMTP_KEY)
server.send_message(msg)

Оба примера читают учётные данные из окружения, о чём следующий раздел.

Безопасность и ротация ключей

Brevo относится к ключам SMTP как к паролям. Операционные правила стоит соблюдать буквально.

  • Один ключ на одну интеграцию. Называйте каждый ключ по системе, которая им пользуется, чтобы утечка или вывод из эксплуатации отзывали ровно одну вещь.
  • Никогда не коммитьте ключ. Переменные окружения, менеджер секретов или конфиг-хранилище вашей платформы. Не система контроля версий, не отслеживаемый файл .env, не скриншот.
  • Меняйте ключ без простоя. Создайте замену, задеплойте, убедитесь, что отправка идёт, затем удалите старый ключ. Удаление необратимо, а удаление ключа, который ещё используется, мгновенно останавливает транзакционную отправку.
  • Деактивируйте, а не удаляйте, если нужно приостановить интеграцию. Ключи можно активировать снова.
  • Учитывайте срок действия. Ключ может иметь срок от 7 дней до 1 года, а неактивные ключи Brevo аннулирует через 90 дней.

Для более жёсткой границы Brevo умеет блокировать запросы с неизвестных IP-адресов. Список разрешённых адресов общий для ключей API и SMTP, поэтому всё, что вы разрешаете, действует на оба. Будьте внимательны в контейнерах и облаке: исходящий адрес может принадлежать NAT-шлюзу, а не тому инстансу, на который вы рассчитываете, и ошибка здесь даёт отказ 525 5.7.1 Unauthorized IP address.

Команды, которые запускают Brevo рядом с витриной, CRM и службой поддержки, в итоге управляют несколькими ключами, отправителями и доменами одновременно. Tajo держит эту конфигурацию в одном месте, а не в четырёх панелях управления.

Лимиты отправки и троттлинг

Отправка по SMTP расходует email-кредиты вашего тарифа. На бесплатном тарифе это 300 писем в день; лимит обнуляется ежедневно, а неиспользованные отправки не переносятся. После его исчерпания Brevo удерживает до 1 000 дальнейших писем в очереди повторной отправки и ничего сверх этой очереди не доставляет. Платные тарифы снимают дневное ограничение, а разбор уровней даёт руководство по тарифам Brevo.

Когда кредиты заканчиваются полностью, сообщения, отправленные по SMTP, ставятся в очередь, а не отбрасываются. Накопившееся видно в разделе Transactional, затем Real time, затем Usage and plan, в блоке Email queue.

Brevo публикует жёсткие лимиты для REST API, а не для релея. На общем уровне POST /v3/smtp/email допускает 1 000 запросов в секунду, а превышение лимита возвращает 429 Too Many Requests. Путь через API также возвращает заголовки лимитов, по которым можно выравнивать темп, чего релей не делает.

Мониторинг отказов и жалоб

Перенаправленная почта видна в разделе Transactional, на страницах Statistics и Logs. События, которые требуют реакции:

  • Жёсткий отказ. Адрес недействителен, и Brevo автоматически заносит контакт в блок-лист.
  • Заблокировано. Получатель ранее пожаловался, отписался, дал жёсткий отказ или был заблокирован вручную.
  • Отложено и мягкий отказ. Провайдер принял соединение, но задержал или отклонил сообщение. Повторяющиеся задержки у одного провайдера сигнализируют о проблеме с репутацией, а не с кодом.

Опрос логов не масштабируется. Brevo поддерживает транзакционные вебхуки, которые в реальном времени отправляют на ваш эндпоинт события доставки, отказов, открытий и жалоб, и именно так вы держите собственные данные подавления в актуальном состоянии.

Главный показатель, за которым нужно следить, это доля жалоб на спам. Gmail, Yahoo и Microsoft требуют от отправителей держаться ниже 0,3%, а Brevo рекомендует следить за ней через Gmail Postmaster Tools. Восстановление после превышения занимает намного больше времени, чем его предотвращение.

Устранение неполадок

535 5.7.8 Authentication failed

Имя пользователя или пароль не удалось проверить. По убыванию вероятности:

  • Вместо логина SMTP в формате [email protected] указан адрес почты аккаунта.
  • В поле имени пользователя вставлен smtp-relay.brevo.com. Brevo называет это одной из самых частых причин.
  • Вместо ключа SMTP использован ключ API.
  • В ключе остался хвостовой пробел или перенос строки после копирования.
  • Настройка шифрования не соответствует порту.
  • Ключ был аннулирован после оповещения о безопасности, и тогда нужно создать новый.

525 5.7.1 Unauthorized IP address

Блокировка по IP включена, а подключающийся адрес не авторизован. Добавьте его, но сначала проверьте свой реальный исходящий адрес, если приложение работает за NAT или в контейнерной платформе.

Нет ответа и нет приветствия

Если TCP-соединение открывается, но сервер так и не присылает приветствие 220, аутентификация начаться не может, и проблема на вашей стороне сети. Корпоративные брандмауэры иногда пропускают соединение и затем молча отбрасывают трафик SMTP. AWS, Azure и Google Cloud по умолчанию ограничивают исходящий SMTP на новых аккаунтах. Запросите снятие ограничения или переключитесь на порт 2525.

450, платформа не активирована

Ошибка сообщает, что ваш аккаунт SMTP ещё не активирован или что ваша отправляющая платформа сейчас отключена. На новом аккаунте транзакционная отправка требует отдельной активации со стороны поддержки Brevo. На давно работающем аккаунте это обычно означает приостановку: либо незащищённую форму атаковали боты с регистрациями, либо аккаунт показал признаки компрометации.

Отправитель отклонён

Проверьте три вещи: домен аутентифицирован, отправитель подтверждён, а в заголовке From стоит не ваш логин SMTP.

Почта принимается, но попадает в спам

Действуйте в таком порядке. Убедитесь, что отправляющий домен аутентифицирован и DKIM подписывает письма. Убедитесь, что домен в поле From ваш собственный, а не бесплатный почтовый провайдер. Проверьте долю жалоб в Postmaster Tools относительно порога 0,3%. К содержанию писем переходите только после того, как эти проверки чисты, потому что оно почти никогда не является первопричиной.

Выделенные IP-адреса

Выделенный IP помогает только при высоком и стабильном объёме. Его нужно прогреть до сколько-нибудь заметной отправки, и ему нужен отправляющий поддомен, который отображается в заголовках как домен mailed by и return path. Это единственная конфигурация, где Brevo выдаёт записи SPF и MX, вместе с записями A, CNAME, DKIM и DMARC для этого поддомена.

Две детали ставят людей в тупик. Выделенный IP, настроенный только под маркетинговую почту, ставит ваши транзакционные сообщения в очередь вместо отправки, поэтому его нужно переключить или купить второй IP. И разделение транзакционной и маркетинговой маршрутизации требует пула минимум из двух IP-адресов с разными отправителями, чтобы слабая вовлечённость в маркетинговой почте не тянула вниз чеки и сбросы паролей.

Как сделать всё правильно с первого раза

Аутентифицируйте домен, создайте именованный ключ SMTP, подключитесь к smtp-relay.brevo.com по 587 и отправьте тест через реальный код, а не кнопкой в панели управления. Почти любая последующая проблема сводится к одному из трёх пунктов.

  • Не то учётное значение в поле имени пользователя или пароля.
  • Порт и настройка шифрования, которые противоречат друг другу.
  • Отправляющий домен, который так и не был аутентифицирован.

Сделайте это правильно, и релей уйдёт в фон, а именно так и должна вести себя транзакционная инфраструктура.

Часто Задаваемые Вопросы

Какой адрес у сервера Brevo SMTP?
Сервер называется smtp-relay.brevo.com. Используйте его вместе с вашим логином SMTP в поле имени пользователя и ключом SMTP в качестве пароля. Не вписывайте smtp-relay.brevo.com в поле имени пользователя.
Какой порт Brevo SMTP выбрать?
По умолчанию используйте порт 587, который согласует TLS через STARTTLS. Порт 465 нужен, если клиенту требуется неявный SSL или TLS. Порт 2525 применяйте только тогда, когда хостинг блокирует 587.
Логин Brevo SMTP совпадает с почтой аккаунта?
Нет. Логин SMTP является отдельным техническим идентификатором в формате [email protected], который показан в поле Login на странице Settings, SMTP and API.
Чем ключ Brevo SMTP отличается от ключа API?
Ключ SMTP аутентифицирует подключения к SMTP-релею и используется как пароль. Ключ API аутентифицирует вызовы REST API. Они не взаимозаменяемы, и попытка использовать ключ API по SMTP заканчивается ошибкой.
Почему возникает ошибка 535 5.7.8 Authentication failed?
Почти всегда это проблема с учётными данными: вместо логина SMTP указана почта аккаунта, вместо ключа SMTP использован ключ API, в ключе затесались лишний пробел или перенос строки, либо шифрование не соответствует порту.
Нужна ли запись SPF для отправки через Brevo SMTP?
Для общей инфраструктуры нет. Brevo аутентифицирует домен записью TXT с кодом Brevo, а также DKIM и DMARC. Записи SPF и MX выдаются только при настройке выделенного IP-адреса.
Сколько писем можно отправить через Brevo SMTP?
Отправка ограничена email-кредитами вашего тарифа. Бесплатный тариф допускает 300 писем в день без переноса остатка, а ещё до 1 000 писем удерживаются в очереди повторной отправки.
Почему письма из Brevo SMTP попадают в спам?
Обычные причины: неаутентифицированный отправляющий домен, бесплатный адрес вроде gmail.com в поле From или доля жалоб на спам выше порога 0,3%, который требуют Gmail, Yahoo и Microsoft.
Можно ли отправлять пакеты через SMTP-релей Brevo?
Нет. Brevo указывает, что SMTP-релей не поддерживает пакетную отправку. Для этого используйте пакетные эндпоинты API транзакционных писем.

Подайте заявку на ранний доступ

Укажите имя, а также email или номер телефона. Мы отправим Вам информацию о доступе к Tajo.

определим автоматически
Получить Brevo