Как настроить отправителя писем в 1С-Битрикс
Письма с сайта приходят от адреса admin@ с именем домена, хотя такого ящика никто не создавал. Или в поле отправителя стоит адрес человека, заполнившего форму, и письмо уходит в спам. Адрес отправителя в 1С-Битрикс задаётся в трёх разных местах, и продукт читает их по очереди — поэтому правка в настройках модуля иногда не меняет ничего.
Три места, где задаётся адрес
- Почтовый шаблон — Настройки → Настройки продукта → Почтовые шаблоны, поле «От кого». Относится к одному письму: уведомлению о заказе, заявке с формы, регистрации.
- Настройки сайта — Настройки → Сайты → Список сайтов, поле с адресом электронной почты.
- Главный модуль — Настройки → Настройки продукта → Настройки модулей → Главный модуль, блок «Почта», поле «E-Mail администратора сайта (отправитель по умолчанию)».
В каком порядке продукт их читает
В поле «От кого» у штатных шаблонов обычно стоит не адрес, а макрос #DEFAULT_EMAIL_FROM#. Разворачивается он так:
- адрес сайта, к которому привязан шаблон;
- если у сайта поле пустое — «E-Mail администратора сайта» из главного модуля;
- если пусто и там —
admin@плюс имя сервера. Это значение по умолчанию прямо в ядре, именно оно и приходит получателям, когда почту никто не настраивал.
Значит, искать причину надо с конца: к какому сайту привязан шаблон и что указано в адресе этого сайта. На установке с двумя сайтами это обычная путаница — шаблон привязан к первому сайту, а письмо ждали от второго. Если в самом шаблоне вместо макроса вписан конкретный адрес, настройки сайта и модуля для этого письма не имеют значения вовсе.
Имя отправителя рядом с адресом
В то же поле пишется и имя: Оверплан <info@overplan.ru>. Кодировать русское имя вручную не нужно, продукт сам переводит его в base64 в заголовке письма и оставляет адрес как есть. Если получателям имя приходит нечитаемым, проверьте в настройках главного модуля флажок «Конвертировать 8-битные символы в заголовке письма».
Как узнать, что ушло и от кого
Письма, отправленные через почтовые события, остаются в таблице b_event, а результат отправки лежит в поле SUCCESS_EXEC:
N— событие создано, но ещё не обработано: письмо в очереди;Y— отправлено;P— по событию нашлось несколько шаблонов, часть писем ушла, часть нет;F— отправить не удалось;0— не нашлось ни одного активного шаблона для этого типа события, письмо даже не формировалось;E— при обработке возникло исключение, подробности в журнале ошибок. В документации этого статуса нет, в коде он есть.
Отдельной страницы для этой таблицы в административном разделе не предусмотрено. Содержимое смотрят через Настройки → Монитор производительности → Таблицы, выбрав b_event, либо запросом в Настройки → Инструменты → SQL запрос. В записи видно и тип события, и переданные поля — по ним понятно, какой шаблон сработал.
Когда очередь стоит и ошибок нет
Почтовое событие не отправляется в момент создания. Оно попадает в очередь, а разбирает её обработчик — порциями по пять писем за проход, размер порции меняется настройкой «Сколько писем отправлять за один хит».
Запускается обработчик двумя способами, и от этого зависит, где искать поломку. По умолчанию он срабатывает в конце каждой страницы сайта. Но если в bitrix/php_interface/dbconn.php объявлена константа BX_CRONTAB_SUPPORT — так сделано в веб-окружении BitrixVM, — очередь разбирается только при запуске из крона, и посещения сайта на неё не влияют:
* * * * * bitrix test -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php \
&& { /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php; }
Когда константа объявлена, а задания нет или путь к сайту в нём другой, письма остаются в статусе N навсегда и ни одна ошибка в журналах не появляется. Проверять это стоит после переноса сайта на другой сервер или смены каталога.
В Битрикс24 отправитель настраивается в интерфейсе
Письма клиентам из портала идут мимо почтовых шаблонов продукта. Отправитель добавляется там, где письмо пишется: Почта → письмо → поле «От кого» → добавление отправителя. Пока к порталу не подключён внешний SMTP-сервер, получатель видит служебный адрес вида noreply@ с адресом портала, хотя ответ на такое письмо дойдёт до нужного сотрудника. В коробочной версии подключить SMTP может только администратор.
Чего настройка отправителя не делает
Правильный адрес в поле «От кого» сам по себе не делает письмо доставленным. Если домен отправителя не разрешил этому серверу отправлять от своего имени, письмо попадёт в спам при любых настройках админки: это записи SPF и DKIM, они разобраны в материале о недоставке писем с сайта. А когда письмо не покидает сервер, дело и вовсе не в продукте — смотрите отправку почты в BitrixVM: там журнал msmtp и проверка почтового сервера.
Проверяли по первоисточнику: документация 1С-Битрикс
Частые вопросы
В настройках модуля стоит один адрес, а письма уходят от другого.
Значение из главного модуля — последнее в очереди. Его перекрывает адрес сайта, к которому привязан почтовый шаблон, а адрес, вписанный прямо в поле «От кого» этого шаблона, перекрывает оба. Начинайте проверку с шаблона конкретного письма, а не с настроек модуля.
Можно ли отправлять письмо от адреса клиента, заполнившего форму?
Технически поле это позволяет, но почтовые фильтры считают такое письмо подделкой: ваш сервер отправляет от имени чужого домена. Адрес клиента ставят в «Обратный адрес» — тогда ответ уйдёт ему, а отправителем остаётся ваш ящик.
Письма висят со статусом N и не отправляются.
Очередь никто не разбирает. Если в dbconn.php объявлена константа BX_CRONTAB_SUPPORT, обработчик запускается только из крона: проверьте, что задание с cron_events.php существует и выполняется. Пока оно не работает, письма копятся без единой ошибки в журнале.
Как отправить письмо повторно?
Сбросить статус SUCCESS_EXEC обратно в N для нужной записи b_event — на следующем проходе обработчик возьмёт её снова. Массовый сброс всех F делать не стоит: если причина сбоя не устранена, вы получите те же ошибки и лишнюю нагрузку.
Где посмотреть, какие вообще письма рассылает сайт?
Настройки → Настройки продукта → Почтовые шаблоны: там все шаблоны с привязкой к сайту и типу события. Список самих типов — на странице «Типы почтовых и СМС событий». Шаблон можно выключить флажком «Активен», не удаляя.