Office 365 中禁用了基本身份验证

鉴于 Basic Auth 在 o365* 中已基本失效(并且由于我本周发现我们的 IT 部门已为所有帐户禁用 Basic Auth,对我来说也已失效),我想知道是否有计划支持其他电子邮件发送身份验证方法?

我知道可以使用 AWS/SES/Sendgrid 等进行设置,但根据我以往在其他项目的经验,这非常麻烦,而且常常会导致邮件被归类为垃圾邮件,这很可惜,因为这基本上都是内部流量。

对于以前或目前使用 o365 SMTP 帐户的、主要基于 MS 的组织,是否有推荐的执行此操作的方法?

1 个赞

Action Mailer 不支持 XOAUTH2,而这是 Microsoft 所必需的。

我唯一能想到的办法是运行一个内部 SMTP 服务器,并将这些电子邮件转发到 O365 进行最终投递。

编辑:我误读了关于 SMTP AUTH 的部分。

看起来不需要切换到 OAuth2。

在 2022 年 10 月 1 日永久禁用基本身份验证时,SMTP AUTH 仍将可用。

所以,您应该可以通过向 app.yml 添加一个额外的环境变量来切换到 SMTP Auth。

DISCOURSE_SMTP_AUTHENTICATION: cram_md5

除此之外,我认为您需要使用 SMTP 密码的 MD5 哈希值作为 DISCOURSE_SMTP_PASSWORD 设置的值。进行这些更改后重建 Docker 容器并尝试一下。

4 个赞

理论上可用,但对“不使用它”的租户禁用,这实际上意味着 IT 部门需要手动指定一项新策略来允许它。我认为这对我们来说不太可能,但会提出一些请求。供参考,这是 smtp 服务器现在的默认响应:

EHLO
250-XXX.outlook.office365.com Hello [178.XXX.XXX.XXX]
250-SIZE 157286400
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 SMTPUTF8
1 个赞

仅供参考……这肯定与我机构在 0365 中实施的、我认为是微软推荐的租户设置不兼容。

Discourse 不支持(或无法支持)OATH 进行邮件发送,这给我们带来了很大的麻烦。我们已通过 AWS 设置了发送,但遇到了许多邮件递送问题,我们真希望能够通过使用现有邮件提供商来保持简单。访问收件箱也是如此。

运行一个 SMTP 服务器并转发将为大多数人带来许多邮件可送达性问题,而且需要大量的额外配置。

这个 gem 似乎提供了所需的功能,并且得到了相当好的支持(MIT 许可证):