Jak wysłać maila z użyciem PowerShell i konta Microsoft 365? Jak wysłać wiadomość mailową skryptem używając Office 365? Mam na to gotowe rozwiązanie.
Aby wysyłać maila z użyciem PowerShell użyjemy polecenia Send-MailMessage. Wcześniej jednak musimy odpowiednio skonfigurować zarówno usługę Microsoft jak i skrzynkę której będziemy używać – tutaj dokładny opis.
Jeżeli skonfigurujemy obsługę SMTP sam skrypt nie będzie zbytnio skomplikowany, ważny jest odpowiedni adres serwera, port, użycie SSL/TLS. Całość wygląda następująco:
$credentials=new-object Management.Automation.PSCredential “office@sprawdzone.it”, (“Haslo!trudn3” | ConvertTo-SecureString -AsPlainText -Force)
$param = @{
SmtpServer = 'smtp.office365.com'
Port = 587
UseSsl = $true
Credential = $credentials
Encoding = 'utf8'
From = 'office@sprawdzone.it'
To = 'lukasz@mail.pl'
Subject = '[Test] Skrypt do maila '
Body = 'Mail wyslany z uzyciem skryptu'
BodyAsHtml = $true
Attachments = 'C:\data\raport.pdf'
}
Send-MailMessage @param
Takiego skryptu możecie używać do wysyłania automatycznych powiadomień, raportów i co wam tylko jeszcze do głowy przyjdzie!
Uwaga: jeżeli podczas wysyłania wiadomości z użyciem skryptu pojawi Wam się komunikat błędu o treści: Unable to read data from the transport connection: net_io_connectionclosed.
Send-MailMessage : Unable to read data from the transport connection: net_io_connectionclosed.
Wystarczy że wymusimy użycie protokołu TLS w wersji 1.2, rozwiązaniem jest jako administrator wydanie polecenia:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Od teraz wasz skrypt będzie działał poprawnie a emaile będą docierać do adresatów.