Настройка корректной отправки почты в Битрикс24

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: Linux, Битрикс24, Postfix, PHP, DNSDKIM, SPF, DMARC, PTR, MX.

По умолчанию, после развертывания коробки Битрикс24 отправка почты (или почтовых уведомлений) не работает или письма постоянно попадают в СПАМ. Мы рассмотрим комплекс мероприятий, которые помогут решить данную проблему полностью или в большей степени. Работать будем с системой на базе Linux.

Настройка отправителя и сервера отправки

Независимо от настроенного нами отправителя в веб-интерфейсе, битрикс будет отправлять письма с заголовком envelope-from, значением которого будет общий отправитель, настроенный в системе. Также нам нужно выбрать сервер, через который будет отправляться почта.

Для этого в стартовом меню битрикс (когда заходим под пользователем root) выбираем настройку Configure pool sites:

Available actions: 
                 1. Manage servers in the pool
                 2. Configure localhost settings
                 3. Configure MySQL service for the pool
                 4. Configure Memcached service for the pool
                 5. Configure pool monitoring
                 6. Configure pool sites
                 7. Configure Sphinx service for the pool
                 8. Manage pool web servers
                 9. Configure Push/RTC service for the pool
                 10. Background pool tasks
                 0. Exit.

Enter your choice: 6

После выбираем пункт Change a site's email settings:

Available actions: 
                 
        1.  Create a site
        2.  Delete a site
        3.  Change a site's cron settings
        4.  Change a site's email settings
        5.  Change a site's https settings
        6.  Change a site's backup settings
        7.  Configure NTLM auth for sites
        8.  Configure optional services (xmppd|smtpd) for a site
        9.  Configure nginx to use composite cache
        10. Configure additional site's options
        0. Previous screen or exit

Enter your choice: 4

Выбираем сайт для настройки (если он один, то default):

Available actions: 
                 
           Manage email settings
        0. Previous screen or exit

Enter site name (default) or 0 to exit: default

Отвечаем на вопросы мастера. В нашем примере мы рассмотрим настройку отправки с локального сервера, поэтому задаем адрес 127.0.0.1. В поле From написать адрес общего отправителя. В итоге, мы получим что-то на подобие:

Found 1 sites:
--------------------------------------------------------------------------------
SiteName   | dbName      | Email |        Server |   TLS | From
--------------------------------------------------------------------------------
default    | sitemanager |     Y | 127.0.0.1:25  |   off | test@dmosk.ru
--------------------------------------------------------------------------------

Если нам необходимо отправлять письма с публичных почтовых систем (Яндекс, mail.ru, GMAIL и так далее), необходимо указать их серверы smtp. Если в нашей системе есть пользователи разных почтовых систем, необходимо настроить отправку почты через локальный сервер, который будет с помощью транспортных правил пересылать сообщения через соответствующие системы. Пример настройки postfix для отправки через Яндекс.

Настройка сервера

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

Наш сервер должен иметь правильное имя — его можно задать командой:

hostnamectl set-hostname mail.dmosk.ru

* заданное имя должно разрешаться через DNS в IP-адрес нашего сервера.

Postfix может быть не установлен в нашей системе, поэтому сначала выполним его инсталляцию.

а) на сервере CentOS:

yum install postfix cyrus-sasl-plain

б) на сервере Ubuntu:

apt-get install postfix cyrus-imapd cyrus-clients cyrus-doc cyrus-admin sasl2-bin

После установки разрешаем автозапуск Postfix:

systemctl enable postfix --now

Открываем конфигурационный файл нашего mta:

vi /etc/postfix/main.cf

Находим не закомментированную строку:

inet_interfaces = localhost

* значение для inet_interfaces может быть не только localhost.

... и меняем ее значение на:

inet_interfaces = all

Задаем в качестве значения для myorigin наш домен, с которого будем отправлять письма:

myorigin = dmosk.ru

* где dmosk.ru — мой домен, который я буду использовать в инструкции в качестве примера.

Задаем максимальный размер отправляемого сообщения:

message_size_limit = 52428800

* в данном примере мы задали лимит в 50 Мб.

Указываем серверу передавать сообщения по зашифрованному каналу:

smtp_use_tls = yes

После внесения настроек перезапускаем postfix для их применения:

systemctl restart postfix

Открываем на редактирование файл с настройками PHP. Путь у данного файла может быть разный — это зависит от конкретного дистрибутива Linux. Узнаем путь до файла командой:

php -i | grep php.ini

В моем случае, это был /etc/php.ini — открываем его:

vi /etc/php.ini

Правим 2 строки:

mail.add_x_header = Off
...
expose_php = Off

* где add_x_header — позволяет добавлять при отправке письма с помощью функции mail() заголовок X-PHP-Originating-Script; expose_php — идентифицирует отправляемое письмо, что оно было сформировано с помощью PHP. Так как присутствие в письме данной информации может привести к негативной реакции со стороны антиспам систем, отключаем ее вывод.

Теперь открываем файл с настройками для PHP, который поставляется с коробкой битрикс24:

vi /etc/php.d/bitrixenv.ini

Находим строку с опцией sendmail_path

sendmail_path = msmtp -t -i

... и приводим ее к виду:

sendmail_path = /usr/sbin/sendmail -t -i

Перезапускаем веб-сервер обработки php: 

systemctl restart httpd

Настройка домена

Для того, чтобы письма проходили проверки на СПАМ, необходимо убедиться в корректной настройке DNS для нашего домена, от которого выполняется отправка.

A-запись

Ранее мы задавали имя серверу. На NS нам нужно добавить соответствующую запись типа А, например:

mail.dmosk.ru   A   90.90.90.90

SPF

Определяет, с каких серверов можно отправлять почту для нашего домена.

Пример:

v=spf1 +a +mx ip4:93.93.93.93 -all

* в данном примере мы разрешаем отправку с сервера с IP адресов домена, для сервера MX и с IP 93.93.93.93. Остальные письма должны восприниматься как нелегитимные.

DKIM

Данная запись включает в себя ключ для дешифровки специального заголовка, отправляемого с письмом. Если проверяющая сторона сможет это сделать, значит письмо отправил владелец домена. 

Для настройки DKIM необходимо установить соответствующие пакеты на сервер, настроить его и добавить записи в DNS.

Подробнее, про настройку DKIM + Postfix.

DMARC

Определяет, что делать с письмами, которые не прошли проверку DKIM и SPF.

Пример записи:

v=DMARC1; p=quarantine; sp=none; pct=100; fo=0; rua=mailto:postmaster@dmosk.ru

* данная политика укажет, что почту, которая не прошла проверку, необходимо поместить в карантин.

PTR

Это обратная запись для внешнего IP-адеса, на котором работает почтовый сервер. Она должна совпадать с именем, которым представляется почтовый сервер (как правило, это имя сервера или его hostname).

Прописывается у провайдера, который предоставляет Интернет (или поставщик МЗЫ)ю

Пример записи:

93.93.93.95.in-addr.arpa       name = mail.dmosk.ru

* указываем, что имя узла для IP-адреса 95.93.93.93 должно быть mail.dmosk.ru.

MX

Для домена должна быть определена MX-запись, которая указывает на адрес почтового сервера. В противном случае, к домену не будет доверия.

Пример записи:

MX preference = 10, mail exchanger = mail1.dmosk.ru
MX preference = 20, mail exchanger = mail2.dmosk.ru

* в данном примере указано 2 почтовых сервера для домена dmosk.ru. Более приоритетный mail1.dmosk.ru.

Подключение ящика

Для подключения к ящику заходим в битрикс 24 под пользователем. Слева переходим в Почта:

Переходим к работе с почтой в битрикс 24

Среди поставщиков услуг выбираем подходящий вариант или IMAP:

Переходим к настройкам IMAP

Заполняем поля для подключения (остальные галочки можно выставить по желанию):

Заполняем поля для подключения к почтовому ящику

* точные настройки необходимо уточнить у администратора почтового сервера. Также их можно посмотреть на странице инструкции соответствующего поставщика.

Отмечаем галочками папки для синхронизации:

Выбираем почтовые папки для синхронизации

Готово. Можно отправлять письма из битрикс.

Проверка и анализ

Существуют различные онлайн сервисы, где мы можем проверить корректность настройки нашего сервера и DNS:

1. Анализ письма. Данные сервисы предлагают отправить письмо на определенный адрес, после будет выполнен онлайн анализ.

В качестве примера приведу два — mail-tester.com и spamtest.smtp.bz.

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

Пример сервисов — dnsbl.smtp.bz2ip.rudnsbl.info и syslab.ru.

3. Проверка репутации домена. Позволяет понять, правильно ли настроен наш домен.

Сервис — mxtools.

Также, для решения проблем на самом сервере необходимо использовать лог почты. Его можно смотреть командой:

tail -f /var/log/maillog

С его помощью можно найти ошибки и понять, почему не отправляются письма.

Читайте также

Также вас может заинтересовать:

1. Настройка почтового сервера для массовой рассылки сообщений.

2. Настройка почты GMAIL и Яндекс для подключения по IMAP или POP3.

# Серверы # Почта # Linux
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет