使用“1”参数调用“发送”的异常:“根据验证过程,远程证书无效.PowerShell

时间:2016-04-03 12:29:04

标签: windows powershell events server procedure

我正在尝试设置一个电子邮件PowerShell脚本,让我在任务计划程序运行脚本时发送电子邮件。我得到的问题是:

Exception calling "Send" with "1" argument(s): "The remote certificate is invalid according to the validation procedure."

我正在运行以下代码:

$SMTPClient = New-Object Net.Mail.SmtpClient("SMTP", PORT)
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("username", "password")
$MailMessage = (New-Object system.net.mail.mailmessage)
$MailMessage.from = ("FROM")
$MailMessage.To.Add("TO")
$MailMessage.Subject = ("Subject")
$MailMessage.Body = ("Body")
$Smtpclient.EnableSsl = ($true)
$SmtpClient.Timeout = (300000)
$SmtpClient.Send($MailMessage)
Write-Output "Message sent";

它给出了上面指定的错误。我在Windows Server 2012 R2上运行此代码,此代码适用于正常的Windows 10,8和7,但不适用于服务器。请有人给我一个快速简便的解决方案。在这个开发阶段,安全性确实不是问题所以任何解决方案都是受欢迎的。谢谢

3 个答案:

答案 0 :(得分:4)

经过大量研究后,结果发现并确认。答案是在send命令之前添加:

QPainter

感谢您的帮助Avshalom和Alexander Obersht

答案 1 :(得分:2)

这仍然无法解决您的证书存在问题,可能与主机,过期证书或中间证书不匹配的问题。通过在调用“发送您”禁用证书验证之前将此类添加到脚本中,仅当您不需要解决证书问题时,这才是一种解决方法。

答案 2 :(得分:0)

$Smtpclient.EnableSsl = ($false)

它解决了我的问题:)