I was having issues with emails for my various backup scripts not sending emails with my submodule, I was seeing hit or miss results but I mostly disregarded them intending to resolve the issue down the road. This issue came to a head when I noticed my Smart Card expiration notices at work had stopped sending, but all my password expiration notices were working fine.
Checking the logs I saw
Send-MailMessage : Unable to read data from the transport connection: net_io_connectionclosed. each time an email tried to send with
Send-MailMessage. I was able to run the same command from my workstation just fine though.
My password expiration notices are sent from a Windows 10 machine, while my machines that have email issues are all running Server 2016. Once I started searching this up (and once I added a trusty
site:reddit.com) I came across a fix.
Once I added
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 into my scripts this issue was resolved.