![通过 Office 365 发送邮件消息操作超时](https://linux22.com/image/780316/%E9%80%9A%E8%BF%87%20Office%20365%20%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E6%B6%88%E6%81%AF%E6%93%8D%E4%BD%9C%E8%B6%85%E6%97%B6.png)
我需要通过脚本发送电子邮件报告。如果我通过我们的邮件中继之一执行此操作,则电子邮件将显示为 [EXTERNAL]。由于此报告包含链接,我希望用户相信它是内部发送的。
因此我想使用domain-com.mail.protection.outlook.com
SMTP 连接器,但当我这样做时,我得到了Send-MailMessage: The operation has timed out.
这是发送邮件的行:Send-MailMessage -SmtpServer domain-com.mail.protection.outlook.com -Port 587 -Credential $credential -From [email protected] -To [email protected] -Subject "External Test" -Body Test
该变量保存了我使用我的用户帐户登录的$credential
输出。Get-Credential
我以前曾尝试过让它工作,但放弃了。我也尝试过端口 25 和 Windows Powershell 以及 Powershell 7.2.6。
我的用户和全公司都启用了 SMTP 身份验证。我还尝试使用 smtp.office365.com 作为服务器。
答案1
检查运行此脚本的服务器是否确实被网络允许通过 TCP 端口 587 连接到外部系统。您可以使用Test-NetConnection
它。
另外,正如罗伯特所说,将-UseSsl
开关添加到命令中并确保使用 TLS 1.2。