По умолчанию 1С-Битрикс отправляет письма через локальную функцию mail() и системный sendmail. Такие письма часто попадают в спам или не доходят вовсе. Отправка через внешний SMTP с авторизацией повышает доставляемость и позволяет использовать корпоративный или сторонний почтовый сервис.
.settings.php. Для писем через SMTP используется свойство почтовых событий или системная переменная окружения.Как Битрикс отправляет письма по умолчанию
В стандартной конфигурации все письма сайта (регистрация, заказы, восстановление пароля, уведомления) формируются через модуль почтовых событий и отправляются PHP-функцией mail(). Эта функция передаёт письмо локальному агенту доставки (обычно sendmail или совместимому), а тот уже сам решает, как доставить сообщение получателю.
У такого подхода есть недостатки:
- письма уходят с IP-адреса вашего сервера, у которого часто нет корректных записей
SPF,DKIMиPTR; - отправитель в поле
Fromможет не совпадать с реальным почтовым доменом, и приёмные серверы помечают такое письмо как спам; - нет авторизации и контроля очереди — сложно диагностировать, почему письмо не дошло.
Внешний SMTP-сервер (корпоративная почта, Яндекс 360, сторонний сервис рассылок) решает эти проблемы: письмо отправляется от лица реального почтового ящика с настроенной аутентификацией.
Способы подключения внешнего SMTP
В 1С-Битрикс есть несколько способов направить исходящую почту на внешний SMTP-сервер. Выбор зависит от версии продукта и того, где размещён сайт.
| Способ | Где настраивается | Когда применять |
|---|---|---|
| Параметры почты события | Свойство Bitrix Sender у почтового события |
Штатный способ в новых версиях главного модуля |
| Настройка msmtp / внешнего sendmail | php.ini, параметр sendmail_path |
Собственный сервер или BitrixVM, полный контроль |
| Модуль или сервис рассылок | Сторонний модуль/API | Массовые рассылки и триггерные письма |
Ниже разберём два самых распространённых сценария: настройку SMTP через свойство почтового события и через sendmail_path на сервере под управлением BitrixVM.
Настройка SMTP через свойство почтового события
Начиная с современных версий главного модуля, у каждого почтового шаблона можно указать SMTP-сервер, через который будет отправлено письмо. Для этого используется дополнительное поле в свойствах отправителя.
- Перейдите в Настройки → Настройки продукта → Почтовые события → Типы почтовых событий и откройте нужный шаблон письма.
- В поле
Дополнительное поле для отправки(Bitrix Sender / SMTP) укажите строку видаsmtp=srv.example.com:465, smtp_login=noreply@example.com, smtp_password=пароль. - Сохраните шаблон. Теперь письма этого типа будут уходить через указанный сервер с авторизацией.
Строку параметров можно задать один раз для всех писем через настройку главного модуля, чтобы не прописывать её в каждом шаблоне. В параметрах допустимы:
smtp— адрес сервера и порт (напримерsmtp.yandex.ru:465);smtp_login— логин (обычно полный адрес ящика);smtp_password— пароль или пароль приложения;smtp_secure— тип шифрования:sslилиtls.
Важно: адрес в поле From шаблона должен совпадать с ящиком авторизации, иначе большинство SMTP-серверов отклонит письмо.
Настройка через sendmail_path на BitrixVM
На серверах под управлением BitrixVM (виртуальная машина Битрикс) удобно направить всю исходящую почту через клиент msmtp, подменив путь sendmail. Тогда любое письмо любого модуля уйдёт через внешний SMTP без правки шаблонов.
- Установите и настройте
msmtp, пропишите в его конфиге сервер, порт, логин, пароль и режим шифрования. - Проверьте отправку из консоли:
echo "test" | msmtp получатель@example.com. - В
php.ini(для сайта — обычно в панели BitrixVM или в/etc/php.ini) задайте параметрsendmail_path = /usr/bin/msmtp -t. - Перезапустите веб-сервер и php-fpm, чтобы изменения вступили в силу.
После этого функция mail() будет передавать письма в msmtp, а тот доставит их через авторизованный SMTP. Проверить фактический путь можно на странице Настройки → Инструменты → Проверка системы или в phpinfo по параметру sendmail_path.
Проверка отправки и диагностика
После настройки обязательно проверьте, что письма реально уходят через новый сервер.
- Отправьте тестовое письмо: например, воспользуйтесь формой восстановления пароля или создайте тестовый заказ.
- Откройте Настройки → Инструменты → Журнал событий и проверьте, нет ли ошибок отправки почты.
- В полученном письме откройте служебные заголовки (Received, Authentication-Results) и убедитесь, что письмо прошло через ваш SMTP-сервер и SPF/DKIM отмечены как
pass.
Полезно также включить отладку на стороне SMTP-клиента (для msmtp — параметры logfile и syslog), чтобы видеть коды ответа сервера. Коды вида 535 означают ошибку авторизации, 550 — отклонение по политике отправителя.
Частые ошибки
Типичные проблемы при подключении внешнего SMTP и их причины:
- Неверный логин или пароль (код 535). Для Яндекса, Google и Mail.ru нужен не обычный пароль, а отдельный пароль приложения; двухфакторная аутентификация блокирует вход по основному паролю.
- Письма всё равно уходят через локальный sendmail. Настройка в шаблоне не применена ко всем событиям, либо не перезапущен php-fpm после правки
php.ini. - Ошибка From не совпадает с ящиком. Адрес отправителя в шаблоне отличается от логина авторизации — сервер отклоняет письмо. Приведите поле
Fromк тому же домену и ящику. - Не тот порт или шифрование. Порт
465обычно требуетssl, порт587—tls(STARTTLS). Несоответствие даёт таймаут или разрыв соединения. - Файрвол блокирует исходящие соединения. Хостинг может закрывать порты 25/465/587. Проверьте доступность сервера командой
telnet smtp.example.com 465. - Письма уходят, но попадают в спам. Не настроены записи SPF и DKIM для домена отправителя — их нужно добавить в DNS.
Итог
Отправка почты через внешний SMTP — обязательный шаг для любого рабочего сайта на 1С-Битрикс, где важна доставляемость писем. Кратко порядок действий:
- выберите способ: свойство почтового события (для отдельных шаблонов) или
sendmail_pathчерез msmtp (для всей почты сервера); - укажите сервер, порт, логин, пароль и тип шифрования, сверив их с документацией почтового сервиса;
- приведите поле
Fromк ящику авторизации и настройте SPF/DKIM в DNS; - отправьте тестовое письмо и проверьте журнал событий и служебные заголовки.
После корректной настройки письма сайта будут уходить стабильно и с меньшей вероятностью попадать в спам.