Назад | Перейти на главную страницу

Как настроить Postfix в Ubuntu для ретрансляции электронной почты через Office 365 (SMTP) с TLS

Я пытаюсь настроить ретранслятор postfix в нашей новой настройке Office365 для некоторых внутренних устройств в нашей сети, которым требуется эта конкретная настройка. Я пробовал различные сайты с конфигурациями и советами по устранению неполадок в Интернете в течение большей части двух дней, но я продолжаю сталкиваться со следующей ошибкой в ​​/etc/log/mail.log, когда пытаюсь отправить, используя: mail user @ domain.com Любая помощь будет принята с благодарностью.

Jun 19 05:41:16 smtphost postfix/smtp[1357]: warning: smtp.office365.com[157.56.96.22]:587 offered null AUTH mechanism list
Jun 19 05:41:17 smtphost postfix/smtp[1357]: warning: SASL authentication failure: No worthy mechs found
Jun 19 05:41:17 smtphost postfix/smtp[1357]: 5E7A32034A: to=<user@domain.com>, relay=smtp.office365.com[157.56.96.22]:587, delay=7289, delays=7283/0.32/5.6/0, dsn=4.7.0, status=deferred (SASL authentication failed; cannot authenticate to server smtp.office365.com[157.56.96.22]: no mechanism available)

Вот вывод моего postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases

append_dot_mydomain = no
biff = no
config_directory = /etc/postfix

inet_interfaces = loopback-only
inet_protocols = ipv4

mailbox_size_limit = 0

mydestination = smtphost, localhost.localdomain, localhost
myhostname = smtphost
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname

readme_directory = no
recipient_delimiter = +

relayhost = smtp.office365.com:587

smtp_always_send_ehlo = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous, noplaintext
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_sasl_type = dovecot
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

вот содержимое моего файла sasl_passwd:

smtp.office365.com 365user@365domain.com:p@ssword

У меня была аналогичная проблема, и я использовал smtp_tls_security_level = encrypt для исправления.

Вам необходимо убедиться, что у вас установлены механизмы аутентификации SASL:

yum install cyrus-sasl-plain cyrus-sasl-scram cyrus-sasl-md5  cyrus-sasl-ntlm

Согласно эта статья базы знаний MS Для работы ретрансляции вам понадобится postfix 2.9 или новее.

Я закончил тем, что установил postfix-2.10.1 из исходников вместе с cyrus-sasl-2.1.25 (не dovecoat, который вы, кажется, используете в своей установке), так как мой любимый дистрибутив имеет в своих репозиториях старую версию postfix.

Используя следующие флаги make, взятые из документации postfix Вот и Вот

make makefiles CCARGS = "- DUSE_SASL_AUTH -DUSE_CYRUS_SASL -DUSE_TLS -I / usr / local / include / sasl -I / usr / local / include" AUXLIBS = "-lsasl2 -lssl -lcrypto"

В моем почтовом журнале postfix я все еще получаю сообщение «предложенный нулевой список механизмов AUTH». Но письма доставляются правильно.

Примечание. Использование адресов электронной почты, которые отличаются от адреса электронной почты (или псевдонима) учетной записи, отклоняются почтовыми серверами Microsoft.

Но вы можете изменить поле FROM: на что угодно. Если вы найдете способ обойти это, оставьте комментарий.