配置Monit通过Office365发送邮件

配置Monit通过Office365发送邮件

我正在尝试配置监控通过Office365发送邮件,相关配置如下:

set mailserver smtp.office365.com port 587 username "username" password "password" using tlsv1 with timeout 30 seconds

不幸的是,它不起作用。以下是来自的相关错误/var/log/monit.log

[PST Feb 27 06:40:48] error : Sendmail error: 534-5.7.9 Please log in with your web browser and then try again. Learn more at

(是的,错误被截断了。)

凭证是正确的 - 我已成功使用它们登录 Office 365/Outlook。我还使用此帐户通过 Rails 应用程序发送邮件,因此我认为配置问题出在 Monit 端,而不是 Microsoft 端。

似乎有人遇到了类似的障碍这里。虽然我找不到任何文档证实 Monit 支持 TLS v1.1,但如果它不支持我会感到惊讶(该规范已有 8 年历史了)。

我是否遗漏了什么?

答案1

“504 5.7.4 无法识别的身份验证类型”是对您的请求的响应。这意味着您正在通过连接不支持的身份验证类型请求访问。

我不熟悉 MONIT - 所以我无法完全帮助配置,但请查看以下配置项:

  1. 确保消息中的发件人与您登录的帐户相同。
  2. 直接检查正在传递的身份验证类型。如果您的配置显示 AUTH LOGIN,请尝试将其更改为 AUTH BASIC。
  3. O365 支持 TLS 1.0、1.1 和 1.2 - 但是,您还必须确保启用了 O365 支持的正确密码套件,否则将无法建立连接。请参阅此处了解支持的密码套件:https://technet.microsoft.com/en-us/library/mt163898.aspx 要查找您正在使用或尝试使用的内容 - 您需要进行数据包跟踪 - 这将显示您正在使用的协议、版本和密码套件(或者您是否没有使用兼容的密码套件)。使用类似 WireShark 的工具来获取此信息。所有操作系统都会启用一组默认密码套件 - 但允许您启用其他密码套件以及更改尝试顺序。

答案2

我成功使用了 TLS 1.2。如下所示:

set mailserver smtp.office365.com port 587
    username "username" password "password"
    using tlsv12
    with timeout 30 seconds
SET TLS options{VERSION: AUTO}

答案3

/etc/mail.rc 中的“设置 smtp-use-starttls”

相关内容