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

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:| :) :wink: :D :lol: :( :cry: 8) :o :oops: :? :x :P :evil: :twisted: :roll: :!: :?: :idea: :arrow: :mrgreen:
Ещё смайлики…

Markdown is OFF

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Отправка SMTP сообщения

Отправка 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)
}

Вернуться к началу