如何在 Ubuntu 上配置 postfix 以使用 TLS 通过 Office 365(SMTP)中继电子邮件

如何在 Ubuntu 上配置 postfix 以使用 TLS 通过 Office 365(SMTP)中继电子邮件

我正在尝试为我们网络上需要此特定设置的一些内部设备设置一个 Postfix 中继到我们新的 Office365 设置。两天来,我一直在尝试网络上各种带有配置和故障排除提示的网站,但当我尝试使用以下方式发送时,/etc/log/mail.log 中始终出现以下错误:mail[电子邮件保护]任何帮助将不胜感激。

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=<[email protected]>, 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 [email protected]:p@ssword

答案1

我遇到了类似的问题并使用“smtp_tls_security_level = encrypt”来修复。

答案2

根据此 MS 知识库文章您需要一个 Postfix 2.9 或更高版本才能进行中继工作。

我最终从源代码安装了 postfix-2.10.1 以及 cyrus-sasl-2.1.25(而不是您在设置中使用的 dovecoat),因为我选择的发行版在其存储库中有一个旧的 postfix 版本。

使用以下取自 postfix 文档的 make 标志这里这里

制作 makefile CCARGS="-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -DUSE_TLS -I / usr / local / include / sasl -I / usr / local / include“ AUXLIBS=" -lsasl2 -lssl -lcrypto”

我的 postfix 邮件日志中仍然会收到“提供空 AUTH 机制列表”的消息。但邮件已正确发送。

注意:使用与帐户电子邮件地址(或别名)不同的电子邮件地址将被微软邮件服务器拒绝。

但您可以将 FROM: 字段更改为您喜欢的任何内容。如果您找到解决方法,请发表评论。

答案3

您需要确保已经安装了 SASL 身份验证机制:

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

相关内容