E-mail küldése PowerShell-ből

Egy egyszerű PowerShell script-et mutatunk be elsőként, amivel a parancssorból beolvasható az SMTP szerver felhasználónév / jelszava és képes akár csatolmányok küldésére is. Ebből aztán bemutatunk egy olyan változatot is, ami a korábban XML fájlba kódolva letárolt SMTP név/jelszóval tud levelet küldeni, így időzített script-ként is futtathatjuk, hogy rendszeres levelet tudjunk küldeni a megadott címre, címekre.

$From = “feladocime@feladodomain.hu”
$To = “cimzettcime@cimzettdomain.hu”
$Cc = “masolatcime@masolatdomain.hu”
$Attachment = $args[0]
$Subject = “A levelünk tárgya”
$Body = “A levél szövege”
$SMTPServer = “SMTP szerver domain neve vagy IP címe”
$SMTPPort = “25”
$cred = Get-Credential
Send-Mailmessage -From $From -To $To -Cc $Cc -Subject $Subject -Body $Body -SmtpServer $SMTPServer -port $SMTPPort -Credential $cred -Attachments $Attachment

Ha a fenti script-et PowerShell parancssorból meghívjuk, akkor a paraméterben megadott fájlt csatolmányként el fogja küldeni. Tehát pl. a .\scriptem.ps1 D:\pelda.txt parancs esetében a D:\pelda.txt fájlunkat fogja csatolni.

Ha előre szeretnénk letárolni az SMTP szerverhez a név/jelszót kódolt formában, akkor arra használjuk az alábbi parancsokat:

$cred = Get-Credential
$cred | Export-CliXml cred.clixml

Ebben az esetben a név/jelszót a cred.clixml fájl fogja tartalmazni, már csak a fenti script sorában ki kell cseréljük ezt:

$cred = Get-Credential

Erre:

$cred = Import-CliXml cred.clixml

Ezzel a fenti script a jelszót nem a levél küldéskor fogja tőlünk bekérni, hanem a korábban letárolt név/jelszóval hitelesít az SMTP szerver felé. Már csak időzített PowerShell feladatot kell belőle kreálnunk az ütemezett feladatok alatt, amit a következő cikkben fogok majd részletesen ismertetni.

Print Friendly, PDF & Email

Vélemény, hozzászólás?

Facebook