Рассмотрим ситуацию, когда нужно что бы пользователи смогли отправлять почту только через SSL/TLS. Достаточно добавить в конфиг такие строки:
exim
auth_advertise_hosts = ${if eq {$tls_cipher}{}{}{*}}
tls_on_connect_ports = 465
Вот небольшая выдержка из справки:
Когда exim передаёт команду EHLO, он сообщает публичные имена тех аутентификаторов, которые сконфигурированы как сервера, подчиняясь следующим условиям:
– Клиентский хост должен совпадать с auth_advertise_hosts (по умолчанию – *)
– Если установлена опция server_advertise_condition, её раскрытие не должно привести к пустой строке, “0”, “no”, или “false”
Иными словами если у нас авторизация через tls, то значение auth_advertise_hosts не пустое, а значит становится равным *, что означает, что хост прошёл авторизацию через tls.
А если только для определённых доменов, то так:
acl_smtp_mail = acl_check_mail
...
begin acl
...
acl_check_mail:
deny sender_domains = !+ssl_local_domains
!condtition = ${if or{{eq{$interface_port}{465}} {eq{$tls_cipher}{}} } }
message = SMTP is available only with SSL or TLS connection enabled.
...
accept
postfix (в main.cf)
smtpd_tls_auth_only = yes
smtpd_recipient_restrictions = check_client_access, permit_sasl_authenticated, reject