Как настроить BitrixEnv/BitrixVM отсылать почту напрямую без авторизации на промежуточных почтовых серверах
Как настроить BitrixEnv/BitrixVM отсылать почту напрямую без авторизации на промежуточных почтовых серверах
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Как настроить BitrixEnv/BitrixVM(6 и 7) отсылать почту напрямую без авторизации на промежуточных почтовых серверах
Настраивать буду на примере сайта naturbine.ru, домен делегирован на pdd.yandex.ru. На арендованном сервере у одной известной компании, развернут контейнер OpenVZ с Centos 6.5 86_64 + BitrixEnv 5 и демо интернет магазином.
1. В первую очередь настроим доменные записи:
Настроим обычные A записи в зоне домена, на примере pdd.yandex.ru в домене naturbine.ru:
srv01.naturbine.ru - имя для хоста (сервера с BitrixEnv) naturbine.ru www.naturbine.ru - соответственно записи для сайта.
Настроим SPF запись. При делегировании домена на yandex.ru, оный создает такую запись:
тем самым мы указали, что всю почту отправляемую с хоста srv01.naturbine.ru можно принимать, а также с серверов указных в SPF записях для хостов yandex.ru, и помечать как спам почту отправляемую со всех других хостов(~all), любопытствующим сюда http://geektimes.ru/post/63768/
Далее необходимо настроить PTR-запись в обратной(reverse) зоне вашего хостера, для разрешения ip-адреса в доменное имя, обычно это доступно в панели управления хостингом. Если этого не сделать, вся почта отправляемая с вашего сервера для спам фильтров будет выглядеть как минимум подозрительно, а некоторые вообще откажутся ее принять. PTR- запись настроем на имя нашего сервера srv01.naturbine.ru (имя хоста конечно же должно быть заданно в настройках ОС и совпадать с доменным, задается либо через меню BitrxEnv либо непосредственно в файле /etc/sysconfig/network, в директиве HOSTNAME=srv01.naturbine.ru)
Через некоторое время можно проверить, работает ли ваша ptr-запись, из windows это сделать очень просто - командой ping -a ip, если все хорошо ip разрешится в доменное имя:
2. Настройка MTA(Mail Transfer Agent) Exim.
Exim, поскольку в сем случае это пожалуй самый простой вариант - он нативно поддерживает DKIM. Не выяснял подробности, почему и от каких условий зависит какой именно mta будут по умолчанию в Centos 6, но могут быть sendmail, postfix и exim.
Проверяем, какой mta на вашем сервере:
[root@srv01 /]# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number:
т.е. если текущий mta не sendmail.exim, установим его:
yum install exim
Переназначим mta по умолчанию на exim, т.е. выберем п.2:
[root@srv01 /]# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix
2 /usr/sbin/sendmail.exim
Enter to keep the current selection[+], or type selection number: 2
primary_hostname = srv01.naturbine.ru - задаем имя которое сервер будет отдавать в HELO
qualify_domain = naturbine.ru - задаем имя домена, которое будет добавляться к локальным адресам, например root -> root@naturbine.ru
[:wq]
Укажем php через какой mta отправлять почту:
vi /etc/php.d/z_bx_custom_settings.ini
[insert]
sendmail_path = /usr/sbin/sendmail -t -i
[:wq]
Перезапустим апач:
service httpd restart
Теперь можно отослать себе письмо из админки сайта и посмотреть на его заголовки. Если доменные записи уже обновились и вы все правильно настроили, то заголовок письма отосланного сайтом на yandex.ru должен быть примерно таким:
3. Создадим цифровую подпись DKIM и настроим Exim на ее использование.
Теперь нужно в зоне домена создать TXT запись mail_srv01._domainkey "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCupYdqHdV7YcgA0h9xPOXCqxX04AIslGLTD2Iikc/h0PxmXZhlA33UZzsL+X9s6utjPF4mHn3N4AROATzs10szDJwD UXF3e4BfvQRMORh1lBPitCMNcdCh0UbDhSyz2gz5OakhyI8YIRAWwlXyMzpQtZwir8cYyyub69gO+BtBBQIDAQAB"
после "p=" необходимо вставить содержимое файла /etc/exim/dkim/naturbine.ru.pub между -----BEGIN PUBLIC KEY----- и -----END PUBLIC KEY-----, важно при этом не скопировать пробелы и переносы строки, ключ должен быть в одну строку. Должно получится примерно так:
Укажем exim, что у нас теперь есть подпись DKIM и ей необходимо подписывать все сообщения:
После обновления доменных записей (если ваша зона на яндексе, обычно это несколько минут) можно еще раз себе отослать проверочное письмо, вы должны увидеть, что письмо имеет цифровую подпись:
Пример заголовков письма mail.google.com с SPF и DKIM: