Один из способов отправки почты через smtp-сервер с помощью Powershell:
1 2 3 4 5 6 7 |
$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 можно отправить письмо несколько проще:
1 |
Send-MailMessage -From "sender@server.ru" -To "recipient@server.ru" -Subject "Subject" -Body "Message body" |
Предварительно надо указать smtp-сервер в переменной $PSEmailServer:
1 |
$PSEmailServer = "smtp.server.ru" |
Или добавить к командлету Send-MailMessage параметр –SmtpServer
Update:
Если необходимо указать логин и пароль для подключения к SMTP-серверу, то нужно добавить в скрипт следующие параметры:
1 2 |
$secpasswd = ConvertTo-SecureString "password" -AsPlainText -Force $mycreds = New-Object System.Management.Automation.PSCredential ("username", $secpasswd) |
И добавить к командлету параметр -credential
1 |
Send-MailMessage -From "sender@server.ru" -To "recipient@server.ru" -Subject "Subject" -Body "Message body" -credential $mycreds |
Задаю в $Body = скрипт, указываю в -Body $body, а сообщение пустое, не могу понять, подскажите пожалуйста
Если в теле письма несколько строк, то надо использовать такую конструкцию:
$MessageBody = @»
This is line 1.
This is line 2.
«@
Спасибо , работает.
А как добавить файл ?
Отправка письма с вложением:
$emailFrom = "user@yourdomain.com"
$emailTo = "user@yourdomain.com"
$subj = "your subject"
$body = "your body"
$file = "c:\file.txt"
$smtpServer = "your smtp server"
$att = new-object Net.Mail.Attachment($file)
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg = new-object Net.Mail.MailMessage
$msg.From = $emailFrom
$msg.To.Add($emailTo)
$msg.Subject = $subj
$msg.Body = $body
$msg.Attachments.Add($att)
$smtp.Send($msg)
$att.Dispose()
Спасибо !!!!
Прекрасно работает!
Хорошо бы ещё добавить куда подкидывать данные для авторизации.
Да, согласен, это часто бывает полезно 🙂 Добавил в статью.