Для начала работы достаточно иметь голую CentOS 7 с BitrixVM, установленной с помощью скрипта с офф сайта Bitrix.
Важно, что это работает и в случае отправки писем с CRM Bitrix 24.
Устанавливаем Postfix + TLS
Создаем сертификат и ключ
openssl req -new -x509 -nodes -out /etc/ssl/postfix/tls.pem -keyout /etc/ssl/postfix/tls.pem -days 3650
В /etc/postfix/main.cf добавим:
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/ssl/postfix/tls.pem
smtpd_tls_cert_file = $smtpd_tls_key_file
smtpd_tls_CAfile = $smtpd_tls_key_file
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
Включаем автозагрузку и запускаем postfix:
systemctl start postfix
Далее необходимо дать понять битриксу, как отправлять письма.
Настройка битрикс
Для этого запускаем их скрипт menu.sh
Выбираем
6. Manage sites in the pool
4. Change a site’s email settings
Настраиваем отпавку почты:
Выбираем сайт. По умолчанию будет default. Далее сами настройки:
- Enter From email address (ex. bob@example.org):robot@domain.com
- Enter server address or DNS (127.0.0.1): 127.0.0.1
- Enter server port (25): 25
- Do you want to use SMTP authentication on 127.0.0.1:25? (N|y)N
- Do you want to enable TLS for 127.0.0.1:25 (n|Y):Y
Вместо robot@domain.com укажите почту с которой будут приходить письма.
Устанавливаем и настраиваем OpenDKIM
Приводим конфиг /etc/opendkim.conf к виду ниже.
AutoRestart Yes AutoRestartRate 10/1h Umask 002 Syslog yes SyslogSuccess Yes LogWhy Yes Canonicalization relaxed/simple ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts KeyTable refile:/etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable Mode sv PidFile /var/run/opendkim/opendkim.pid SignatureAlgorithm rsa-sha256 UserID opendkim:opendkim Socket inet:12301@localhost
Создаем файл /etc/opendkim/TrustedHosts доверенных узлов. Вместо domain.com свой домен.
::1
domain.com
Создаем /etc/default/opendkim и записываем в него:
В /etc/postfix/main.cf добавим:
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
Создаем ключи домена
Далее везде domain.com меняем на свой домен.
cd /etc/opendkim/domain.com
opendkim-genkey —domain domain.com —selector crm —bits 1024
chown opendkim:opendkim *
chmod 400 *
Добавляем в /etc/opendkim/KeyTable
Добавляем в /etc/opendkim/SigningTable
Перезагрузим postfix и opendkim
service opendkim restart
Редактирование зоны домена
Читаем что находится в /etc/opendkim/domain.com/crm.txt
Рекомендую создать отдельный файлик и привести это к нормальному виду. Без лишних кавычек и пробелов.
То что получили необходимо указать как TXT запись для crm._domainkey.domain.com
Проверяем
Ждем обновления зоны домена (примерно 15 минут) и отправляем письмо с сервера.
Проверяем лог /var/log/maillog . Если видим
То все ок. Можно проверять наличие подписи в письме.