По умолчанию мой Postfix разрешает ретрансляцию электронных писем, отправляемых в мой домен (domain1.com), или только для клиентов с аутентификацией по паролю, или для адресов 'myhostname'. Это обычная ситуация для большинства почтовых серверов.
Если я настраиваю коннектор в Exchange Online для отправки исходящих писем через мой постфикс, клиенты (например, Outlook) обычно отправляют электронную почту, используя учетные данные Exchange, а служба Exchange пересылает отправленные письма на мой постфикс.
main.cf:
relay_domains = domain1.com
...
smtpd_relay_restrictions =
reject_non_fqdn_recipient,
reject_non_fqdn_sender,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_invalid_hostname,
reject_unverified_sender,
reject_unknown_client_hostname,
reject_unknown_helo_hostname,
defer_unauth_destination
Postfix откажет с кодом «454 4.7.1 Relay access denied»:
Anonymous TLS connection established from mail-ve1eur122p0672.outbound.protection.outlook.com[213.199.154.150]: TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)
NOQUEUE: reject: RCPT from mail-ve1eur122p0672.outbound.protection.outlook.com[213.199.154.150]: 454 4.7.1 <external123@partner.org>: Relay access denied; from=<my@domain1.com> to=<external123@partner.org> proto=ESMTP helo=<EUR03-VE1-obe.outbound.protection.outlook.com>
disconnect from mail-ve1eur122p0672.outbound.protection.outlook.com[213.199.154.150]
Это нормально, потому что хост ve1eur122p0672.outbound.protection.outlook.com не указан в myhostname, и этот хост не использует smtp-auth.
Я попытался:
smtpd_relay_restrictions =
reject_non_fqdn_recipient,
reject_non_fqdn_sender,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
permit_mynetworks,
permit_sasl_authenticated,
check_client_access hash:/etc/postfix/trusted_servers,
reject_unauth_destination,
reject_invalid_hostname,
reject_unverified_sender,
reject_unknown_client_hostname,
reject_unknown_helo_hostname,
defer_unauth_destination
И:
# less /etc/postfix/trusted_servers
.outbound.protection.outlook.com OK
# postmap /etc/postfix/trusted_servers
Но безрезультатно.
Можно ли разрешить postfix принимать почту с * .outbound.protection.outlook.com на любые домены, но для других разрешать только аутентификацию по паролю?
smtpd_client_restrictions =
check_client_access hash:/etc/postfix/trusted_servers
Не smtpd_relay_restrictions раздел. Пожалуйста прочти: http://www.postfix.org/postconf.5.html#check_client_access