Dzisiaj podzielę się krótką funkcją, która może posłużyć do wysyłania maili – na przykład cyklicznych raportów, czy notyfikacji ze skryptu monitorującego. Tutaj akurat konfiguracja jest dla skrzynki exchange w office365.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function Send-ToEmail([string]$email){ $message = new-object Net.Mail.MailMessage; $message.From = "sender@exampledomain.pl"; $message.To.Add($email); $message.IsBodyHTML = "Service is stopped ! . "; #$message.Body = $bodymail; $message.Body = "please start the service."; $smtp = new-object Net.Mail.SmtpClient("smtp.office365.com", "587"); $smtp.EnableSSL = $true; $smtp.Credentials = New-Object System.Net.NetworkCredential($cred.UserName, $cred.Password); $smtp.send($message); } |
W moim przypadku $bodymail jest tabelą ze stanem zajętości dysków przekonwertowaną do HTML za pomocą komendy poniżej.
1 2 3 4 5 |
$alldisk = @() . . . $bodymail = $alldisks | ConvertTo-Html |
Następnie wykonujemy funkcję, gdzie parametrem jest adres email.
1 |
Send-ToEmail -email "recipient@exampledomain.pl" |