Alexander A Manaeff -

 
 

Отправка SMTP сообщения

Windows PowerShell — расширяемое средство автоматизации от Microsoft, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев.
Отличная замена командной строке. Возможности просто безграничные.

Модератор: UncleFather

Отправка SMTP сообщения

Сообщение UncleFather » 26 мар 2014 11:58, Ср

Пример PowerShell скрипта для отправки почты (SMTP сообщения):

Код: Выделить всё
$ConstServer = "smtp.server.ru"                                 #SMTP сервер
$ConstSMTPPort = "25"                                           #Порт SMTP сервера
$ConstFrom = "sender@server.ru"                                 #Адрес отправителя
$ConstTo = "receiver@server.ru"                                 #Адрес получателя
$ConstMessageTypeHTML = $false                                  #Формат сообщения HTML (true) или обычный текст (false)
$ConstUserName = "sender@server.ru"                             #Имя пользователя (ящика) для авторизации на SMTP сервере
$ConstUserPass = "MyPassword"                                   #Пароль для авторизации на SMTP сервере
$ConstMessageSubject = "Subject"                                #Тема сообщения
$ConstMessageBody = "Body"                                      #Тело сообщения
$SourceFile="C:\Soft\Attachment.txt"                            #Прикрепляемый файл

#Создаем необходимые объекты и задаем переменные, необходимые для отправки и формирования SMTP сообщения:
    $SmtpClient = New-Object System.Net.Mail.SmtpClient
    $Message = New-Object System.Net.Mail.MailMessage
    $SmtpClient.Host = $ConstServer
    $SmtpClient.Port = $ConstSMTPPort
    $Message.From = $ConstFrom
    $Message.To.Add($ConstTo)
    $Message.BodyEncoding = [System.Text.Encoding]::UTF8
    $Message.SubjectEncoding = [System.Text.Encoding]::UTF8
    $Message.IsBodyHtml = $ConstMessageTypeHTML
    $Message.Subject = $ConstMessageSubject
    $SmtpClient.Credentials= New-Object System.Net.NetworkCredential($ConstUserName , $ConstUserPass)
    $Message.Attachments.Add($SourceFile)
    $Message.Body = (get-date).ToString() + $ConstMessageBody
    $SmtpClient.Send($Message) #Отправляем SMTP сообщение
    if ($?) { # Если SMTP сообщение было отправлено успешно, то
       write-host "Сообщение успешно отправлено"
    } else { #Если SMTP сообщение не удалось отправить, то
       write-host "Сообщение не отправлено. Ошибка:" $Error[0].ToString()
    }
    $Message.Dispose() #Отправляем сообщение QUIT на SMTP-сервер (правильно завершаем TCP-подключение и освобождаем все ресурсы, используемые текущим экземпляром класса SmtpClient)
}
Аватара пользователя
UncleFather
Site Admin
 
Сообщения: 1326
Зарегистрирован: 17 авг 2004 16:20, Вт

Вернуться в Windows PowerShell

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Alexander A Manaeff -
@Mail.ru .