IT-Бложек

Отправка почты с помощью Powershell

Один из способов отправки почты через smtp-сервер с помощью Powershell:

$smtpServer = "smtp.server.ru"
$smtpFrom = "sender@server.ru"
$smtpTo = "recipient@server.ru"
$messageSubject = "Subject"
$messageBody = "Message body"
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($smtpFrom,$smtpTo,$messagesubject,$messagebody)

В Powershell 2.0 можно отправить письмо несколько проще:

Send-MailMessage -From "sender@server.ru" -To "recipient@server.ru" -Subject "Subject" -Body "Message body"

Предварительно надо указать smtp-сервер в переменной $PSEmailServer:

$PSEmailServer = "smtp.server.ru"

Или добавить к командлету Send-MailMessage параметр –SmtpServer

Update:

Если необходимо указать логин и пароль для подключения к SMTP-серверу, то нужно добавить в скрипт следующие параметры:

$secpasswd = ConvertTo-SecureString "password" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("username", $secpasswd)

И добавить к командлету параметр -credential

Send-MailMessage -From "sender@server.ru" -To "recipient@server.ru" -Subject "Subject" -Body "Message body" -credential $mycreds
Exit mobile version