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

Josh picture Josh · Apr 3, 2016 · Viewed 10.8k times · Source

I am trying to setup an email PowerShell script that will let me send an email when the task scheduler runs the script. The problem i am getting is:

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

I am running the following code:

$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";

It gives me the error as specified above. I am running this on a Windows Server 2012 R2 and this code does work on the normal Windows 10, 8 and 7 but not Servers. Please can someone give me a quick and easy solution. Security really isn't a problem at this stage of development so any solution is welcome. Thank you

Answer

Josh picture Josh · Apr 3, 2016

It turned out after much research and looking and then confirming. The answer is to be added just before the send command:

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { return $true }

Thanks for all your help Avshalom and Alexander Obersht