Почта на сайте — это кровеносная система бизнеса. Заявки с форм, уведомления клиентам, счета — всё идёт через неё. Когда отправка писем ломается, бизнес слепнет. Особенно часто проблемы возникают при работе с почтовыми сервисами вроде Mail.ru, у которых строгие правила безопасности.
В этой статье я расскажу, как настроить отправку писем в 1С-Битрикс (Управление сайтом) через Mail.ru и, что самое важное, как решить самую частую и непонятную ошибку: 550 Message was not accepted -- it contains invalid headers.
Важно: Инструкция основана на реальном опыте и подходит для серверов под управлением BitrixVM (Виртуальная машина от Битрикс).
📍 Почему Битрикс24 перестаёт отправлять письма?
Прежде чем лезть в настройки, важно понять причину. Вот топ-3 самых частых проблем :
- Требуется пароль приложения. С 2022 года Mail.ru, Яндекс и Gmail запретили использовать обычные пароли для внешних приложений. Без специального пароля приложения почта не заработает.
- Ошибки в DNS (SPF, DKIM). Даже если письмо ушло, оно может не дойти, угодив в спам или будучи отброшенным сервером получателя из-за отсутствия цифровой подписи.
Именно на решении последней проблемы мы и сосредоточимся.
Пошаговая настройка отправки писем через Mail.ru
Шаг 1: Получаем пароль приложения
Забудьте о пароле, которым вы входите в почтовый ящик. Для отправки с сайта нужен специальный пароль.
- Перейдите в «Настройки» (шестеренка) → «Все настройки» → «Безопасность».
- Найдите раздел «Пароли для внешних приложений».
- Нажмите «Добавить». Назовите приложение, например, BitrixSite.
- Скопируйте сгенерированный длинный пароль. Сохраните его в надёжном месте — он показывается только один раз.
Шаг 2: Создаём конфигурацию для msmtp
На серверах BitrixVM отправка писем происходит через программу msmtp. Нам нужно создать для неё конфиг.
- Подключитесь к серверу по SSH.
- Создайте или отредактируйте файл конфигурации пользователя nano /home/bitrix/.msmtprc
- Вставьте в него следующие настройки:bash# Настройки по умолчанию
defaults
auth on
tls on
tls_certcheck off
logfile /home/bitrix/msmtp.log
set_from_header on # Критически важная опция!
# Основной аккаунт
account default
host smtp.mail.ru
port 465
from info@ваш-домен.ru # Адрес, от которого будут приходить письма
user info@ваш-домен.ru # Логин для авторизации на SMTP (тот же ящик)
password сгенерированный_пароль_приложения
tls_starttls off
Обратите внимание на опцию set_from_header on. Она помогает msmtp правильно подставлять заголовок письма. - Сохраните файл
- Установите правильные права доступа, иначе msmtp откажется работать из соображений безопасности:bashchmod 600 /home/bitrix/.msmtprc
chown bitrix:bitrix /home/bitrix/.msmtprc - Создайте файл для логов:bashtouch /home/bitrix/msmtp.log
chmod 644 /home/bitrix/msmtp.log
chown bitrix:bitrix /home/bitrix/msmtp.log
Шаг 3: Тестируем отправку
Прежде чем проверять в Битриксе, протестируем отправку напрямую из командной строки:
bash
sudo -u bitrix php -r "mail('ваш-тестовый-email@yandex.ru', 'Тест из консоли', 'Проверка связи');"
Смотрим лог:
bash
cat /home/bitrix/msmtp.log
Если письмо ушло — отлично. Если нет — переходим к разделу «Решения проблем».
🆘 Ошибка 550: «From: header must match user you are sending mail from»
Это та самая ошибка, из-за которой ломается отправка с корпоративных доменов на Mail.ru. Выглядит она так:
smtpstatus=550 smtpmsg='550 Message was not accepted -- it contains invalid headers. More specially, 'From:' header must match user you are sending mail from.'
Суть проблемы: Почтовый сервер Mail.ru требует, чтобы адрес в поле From: (отправитель) совпадал с адресом, под которым msmtp логинится на SMTP-сервере (user) .
В Битриксе часто возникает ситуация, когда пользователи отвечают клиентам со своих личных ящиков (например, manager@company.ru), а сам сайт отправляет системные письма с технического адреса (robot@company.ru). По умолчанию в конфиге msmtp указан только один user и один from, и при попытке отправить письмо с другого адреса Mail.ru его отклоняет.
Заключение
Настройка почты для Битрикс — задача, требующая внимания к деталям. Главные правила успеха:
- Всегда используйте пароли приложений.
- Следите за соответствием адреса отправителя и логина SMTP.
Следуя этой инструкции, вы сможете не только настроить отправку, но и во всеоружии встретить самую капризную ошибку 550 от Mail.ru.
Поделитесь этой статьёй с коллегами, у которых тоже есть сайты на Битрикс — им точно пригодится!
UPD:
UPD: Новая функция SMTP-сервера отправителя в Битрикс
В версии 21.900.0 модуля main в продуктах «1С-Битрикс: Управление сайтом» и коробочных версиях «Битрикс24» появилась важная функция — встроенная поддержка SMTP-сервера отправителя. Этот механизм позволяет гибко управлять отправкой писем прямо из интерфейса, разделяя потоки системных уведомлений, писем CRM и маркетинговых рассылок.
Включение функции
Чтобы активировать возможность использования SMTP-сервера отправителя, добавьте в файл /bitrix/.settings.php секцию smtp:
php
'smtp' => array (
'value' => array(
'enabled' => true, // Включение функционала
'debug' => false, // true для отладки (необязательно)
'log_file' => '/home/bitrix/bitrix_mail.log', // Путь для логов (необязательно)
),
),
Параметры:
- enabled — обязательный параметр, включает систему;
- debug — включает подробное логирование процесса отправки;
- log_file — полный путь до файла логов (должен быть доступен для записи).
Создание SMTP-подключения
Новый SMTP-сервер можно настроить двумя способами:
Способ 1. Через административный раздел:
- Перейдите в Настройки > Настройки продукта > Почтовые и СМС события > Настройки SMTP;
- Нажмите «Добавить SMTP-подключение»;
- Заполните форму: укажите email отправителя, сервер, порт, логин и пароль приложения.
Способ 2. При создании почтового события:
- При настройке нового отправителя в почтовом событии нажмите ссылку «SMTP-сервер»;
- Заполните появившиеся поля подключения.
Важные моменты при настройке:
- Для порта 465 обязательно указывайте протокол ssl:// перед адресом сервера (например, ssl://smtp.mail.ru);
- В подключении можно задать ограничение на количество писем (полезно для массовых рассылок);
- Каждому сотруднику можно подключить свой индивидуальный SMTP-сервер.
Как это работает
Функция bxmail (стандартный механизм отправки в Битрикс) теперь проверяет наличие активного SMTP-подключения для адреса отправителя:
- Если для email отправителя найдено активное SMTP-подключение — письмо уходит через локальный SMTP (настройки ядра);
- Если подключения нет — письмо отправляется стандартным способом через msmtp (настройки сервера).
Особенности использования:
- Отправка через локальный SMTP работает для писем, где можно выбрать отправителя: рассылки, письма из CRM, исходящие письма из раздела «Почта»;
- Системные письма (уведомления, восстановление пароля) отправляются через SMTP только в том случае, если email по умолчанию совпадает с email одного из настроенных SMTP-отправителей;
- Новый механизм не конфликтует с настройками SMTP в BitrixVM — они работают параллельно;
- Тест отправки почты в инструменте «Проверка системы» проверяет только функцию mail() и не отражает работу локальных SMTP-подключений.
Это обновление делает настройку почты более гибкой и прозрачной, позволяя управлять отправкой писем без необходимости править конфигурационные файлы на сервере.