【发布时间】:2021-12-02 21:20:42
【问题描述】:
我正在尝试使用 PowerShell 通过 Exchange 发送电子邮件。是否可以指定要使用的 Exchange 版本?我不知道 Send-MailMessage 是否是正确使用的函数。
服务器需要用户名和密码,并且应该使用 Exchange2007_SP1。
运行以下代码返回“Send-MailMessage:服务不可用。关闭通道。服务器响应 4.3.2 服务不可用”。
所以看起来服务器得到了这个,但拒绝了它。
运行此程序的安全服务器没有直接的 Internet 连接,但可以访问 Exchange 服务器。因此,如果需要,我无法下载和安装插件到 PowerShell。
有什么想法吗?我是不是从错误的角度攻击这个?
$sendMailParams = @{
From = 'sender@somemailaccount.com'
To = 'johndoe@someexchangeserver.com'
Subject = 'some subject here'
Body = 'some body here'
SMTPServer = 'exchange.server.com'
UseSsl = $true
Credential = $mailCred
}
Send-MailMessage @sendMailParams```
【问题讨论】:
-
如果在
exchange.server.com侦听 SMTP 提交的服务器是 Exchange 2007 服务器,那么它将使用它。 SMTP 本身没有机制来指示“请通过特定邮件服务器的特定版本进行路由” -
如果您使用 SSL,您可能还需要指定端口。 Exchange 版本根本不重要。
-
它在从 UiPath 连接到 Exchange 时确实有效,但该应用程序有它自己的功能,它允许您指定要使用的 Exchange 版本。好像 PowerShell 没有...
-
难道 PowerShell 不是 Exchange 服务器上接受的应用程序?
-
@Tom-IngeNilsen,尝试使用
-Port 465指定默认 SSL 端口或删除-UseSSL行。我知道 Exchange 2007 也不支持 SMTP 的 TLS1.1/1.2,所以如果您碰巧在 powershell 中禁用了旧版本,那么这也可能导致问题(尽管可能是不同的错误)。
标签: powershell email version exchange-server