Posted in: Windows 10, Windows 11, Windows 8 a 8.1, Windows server, Základy PowerShellu

Odesílání emailu pomocí PowerShellu

S moderní autentizací na straně emailových serverů dokážeme i nadále PowerShellem odesílat emaily. Následující kód využívá SMTP Office 365 pro Evropu k odeslání emailu. Kód je určen k uložení ve formátu ps1 a volání s patřičnými parametry. Odesílání emailů tak může zajíst např. zasílání výpisu z logů, nebo odbavovat požadavky v rámci naší serverové aplikace. Po úpravě SMTP serveru zvládne spolupracovat i s jinými emailovými službami.
Zdrojový kód skriptu:


param(
[Parameter(Mandatory=$true, ValueFromPipeline=$true)][string] $userName,
[Parameter(Mandatory=$true, ValueFromPipeline=$true)][string] $password,
[Parameter(Mandatory=$true, ValueFromPipeline=$true)][string[]] $komu,
[Parameter(Mandatory=$true, ValueFromPipeline=$true)][string] $predmet,
[Parameter(Mandatory=$true, ValueFromPipeline=$true)][string] $telo,
[Parameter(Mandatory=$true, ValueFromPipeline=$true)][switch] $teloHTML,
[Parameter(Mandatory=$true, ValueFromPipeline=$true)][switch] $priloha,
[Parameter(Mandatory=$false, ValueFromPipeline=$true)][string] $cestaKpriloze

)
[SecureString]$securepassword = $password | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securepassword
$server = „smtp.office365.com“
$port = 587
if($teloHTML -and $priloha)
{
Send-MailMessage -SmtpServer $server -Port $port -UseSsl -From $userName -To $komu -Subject $predmet -Body $telo -BodyAsHtml -Attachments $cestaKpriloze -Credential $credential
}
elseif($teloHTML)
{
Send-MailMessage -SmtpServer $server -Port $port -UseSsl -From $userName -To $komu -Subject $predmet -Body $telo -BodyAsHtml -Credential $credential
}
elseif($priloha)
{
Send-MailMessage -SmtpServer $server -Port $port -UseSsl -From $userName -To $komu -Subject $predmet -Body $telo -Attachments $cestaKpriloze -Credential $credential
}
else
{
Send-MailMessage -SmtpServer smtp.office365.com -Port 587 -UseSsl -From $userName -To $komu -Subject $predmet -Body $telo -Credential $credential
}

Back to Top