BitrixVM - шлем почту через postfix

BitrixVM - шлем почту через postfix

607
30.08.2018
03.11.2018

Стандартно, BitrixVM для отправки почтовых сообщений использует smtp. Данный механизм хороший, стабильный и все с ним отлично за одним исключением - при настройке отправки очень часто (практически всегда) проверка сайта выдает предупреждение - слишком долго уходит письмо аж 1-2 секунды. Чтобы избавиться от этого красного предупреждения в проверке сайта, можно воспользоваться отправкой почты через postfix.

Настройка отправки писем через postfix

Для настройки вам необходимы базовые знания о работе с linux и терминалом!!!

Итак, заходим на сервер, выходим из меню веб-окружения и переходим к настройке. Для начала нужно установить сам postfix и дополнительные пакеты:

yum install postfix
yum install cyrus-sasl-plain

Дальше - добавляем в конец файла /etc/postfix/main.cf блок:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/mailpasswd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
sender_canonical_maps = hash:/etc/postfix/canonical
smtp_generic_maps = hash:/etc/postfix/generic
smtp_use_tls = yes

Дальше в файле /etc/postfix/mailpasswd указываем логин и пароль для авторизации на сервере отправки почты:

[smtp.yandex.ru]      mail@your.domain:password

В файле /etc/postfix/sender_relay указываем привязку доменов и конкретных отправителей к внешним службам:

@your.domain [smtp.yandex.ru]
mail@your.domain [smtp.yandex.ru]:587

В /etc/postfix/canonical добавляем для домена указание через какой аккаунт отправлять почту:

@your.domain   mail@your.domain

В /etc/postfix/generic добавляем отправку почты админу на внешний ящик:

root@localhost admin@mail.xx
bitrix@localhost admin@mail.xx

И выполняем команду postmap для /etc/postfix/generic, /etc/postfix/canonical, /etc/postfix/sender_relay, /etc/postfix/mailpasswd:

postmap /etc/postfix/generic
postmap /etc/postfix/canonical
postmap /etc/postfix/sender_relay
postmap /etc/postfix/mailpasswd

Изменяем настройки в /etc/php.d/bitrixenv.ini:

sendmail_path = sendmail -t -i -f mail@your.domain         ;bitrix-env

Запускаем все необходимые службы:

chkconfig saslauthd on
service saslauthd restart
chkconfig postfix on
service postfix restart

Скорость отправки сообщений php-скриптами значительно возрастет, а всю работу по доставке писем до внешнего сервера возьмет на себя postfix. При этом не нужно настраивать полноценный почтовый сервер.

На этом, работа с отправкой почты через postfix настроена и можем радоваться!!!

Подстановка обратного адреса в письма

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

Вносим правки в файл: /etc/postfix/main.cf:/p>

# In /etc/postfix/main.cf, add this if sender_canonical_maps isn't already defined:
sender_canonical_maps = regexp:/etc/postfix/sender_canonical

А в указанный файл /etc/postfix/sender_canonical прописываем:

# please note - this also applies to Reply-to header if the email already has one:
/@your.domain/ mail@your.domain

Такая конструкция подменит все адреса отправителя на валидное значение, для которого сервер знает, как отправлять почту и по каким каналам.

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

Чтобы побороть данную ситуацию, нужно в письмах прописать дополнительно адрес обратной связи. Для этого, в /etc/postfix/main.cf добавляем строки:

header_checks = regexp:/etc/postfix/header_checks
local_header_rewrite_clients = static:all

А в указанный файл /etc/postfix/header_checks прописываем:

/^From: (.*@your.domain)/ PREPEND Reply-to: $1

Т.к. Postfix применяет header_checks до sender_canonical_maps, то во время добавления заголовка Reply-to поле From еще не заменено!

Все! теперь вы можете слать с сайта почту от имемни любого ящика в вашем домене - это бывает очень полезно, когда информация, касающаяся продаж идет с ящика sale, информация, касающаяся заказов идет с ящика order, информация с различными информационными материалами - от ящика info, а информация для разработчиков и администраторов - от имени ящиков dev и admin.

P.S. Выражаю огромную благодарность ресурсу "thinlight.org" за столь подробное описание механизма подмены отправителя:)

Update 2018-12-03.

Если система выдала вам сообщение об отсутствии пакет saslauthd - его нужно доустановить. Проверяем в пакетах, кто отвечает за данную службу:

yum provides "*/saslauthd.service"

И видим пакет:

cyrus-sasl-2.1.26-23.el7.i686 : The Cyrus SASL library
Источник: base
Совпадения с:
Имя файла   : /usr/lib/systemd/system/saslauthd.service

Данный пакет нужно доустановить:

yum install cyrus-sasl-2.1.26-23.el7

Источник: https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=37&LESSON_ID=5506&LESSON_PATH=3908.6488.5501.5506


Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку