记 Microsoft 365 E5 Developer 使用 Thunderbird 客户端发送邮件的问题

解决方法看上去很简单。

推荐友人使用 E5 Developer 之后,友人绑定了自己的域名上去——然后想使用 Thunderbird 客户端发信。但客户端永远会提醒 Login to server smtp.office365.com with username failed.

因为之前尝试简单的搜索过,都未果,所以直接告诉友人没有办法,但他不信,给我找到了 Exchange 文档里的Enable or disable SMTP AUTHHow to set up a multifunction device or application to send email using Microsoft 365 or Office 365。后面,我也是通过这两篇文章解决的,感谢他!

我的情况很简单,关闭了 Manage Security defaults 但在 Conditional Access 内额外开启了基于 App 的 2FA Policy。如果好奇怎么设置的可以看我以前的文章。

通过读文档可以知道,通过 SMTP AUTH 直接发送邮件的话,如果启用了 Microsoft Security Defaults 或者 multi-factor authentication (MFA),那么是不能这样的。但我不信,我就是要试一试。

首先,在 Powershell 内安装 Exchange Online PowerShell V2 模块:

Set-ExecutionPolicy RemoteSigned
Install-Module -Name ExchangeOnlineManagement

安装之后,在 PowerShell 内登入组织的管理员账号:

Connect-ExchangeOnline -UserPrincipalName admin@example.com -ShowProgress $true

登入之后,可以全组织的查看 SMTP AUTH 的开启状态:

Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled

如果想对 admin@example.com 这个帐号打开 SMTP AUTH 的话,那么需要运行:

Set-CASMailbox -Identity admin@example.com -SmtpClientAuthenticationDisabled $false

通过下面这一行命令来检查是否生效了:

Get-CASMailbox -Identity admin@example.com  | Format-List SmtpClientAuthenticationDisabled

结果应该类似于这样:

Name  ActiveSyncEnabled OWAEnabled PopEnabled ImapEnabled MapiEnabled SmtpClientAuthenticationDisabled
----- ----------------- ---------- ---------- ----------- ----------- --------------------------------
admin   True              True       True       True        True        False

大功告成啦,接下来尝试发信可以发现问题解决~~~

当然,后面如果想对全部帐号关掉的话可以使用这条命令:

Set-TransportConfig -SmtpClientAuthenticationDisabled $true

最后,养成登出的好习惯,因为直接关闭窗口的话 session 还在:

Disconnect-ExchangeOnline

如果喜欢本文,欢迎点击下方的「鼓掌」按钮!

如果上面没有加载出任何东西,可以点击这里