'SMTPClient Failure During Send Concerning Arguments

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. Why?



Solution 1:[1]

To resolve the issue, just before the send command:

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

Solution 2:[2]

This still doesn't resolve the fact the you have an issue with your certificate, perhaps a mismatch with host, expired certificate or intermediate certificate. By adding this class above to your script before the call to Send you are disabling certificate validation, this is a workaround only if you do not need to address the certificate issue.

Solution 3:[3]

$Smtpclient.EnableSsl = ($false)

it solved my problem :)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ΩmegaMan
Solution 2 arreagac
Solution 3 Aimee_King