TechNet - Только для профессионалов. Специально для Вас. > Форумы > Форумы Серверные ОС Windows > Scripting Languages > Кто ни будь может помочь готовым скриптом отправки e-mail через публичный почовик
Задайте вопросЗадайте вопрос
 

ОтвеченоКто ни будь может помочь готовым скриптом отправки e-mail через публичный почовик

Ответы

  • 22 мая 2008 г. 6:06Vasily GusevMVP, МодераторМедали пользователяМедали пользователяМедали пользователяМедали пользователяМедали пользователя
     Отвечено

    Подновил скрипт добавив поддержку SSL и указание учетных данных. Спасибо .Net, это заняло лишь несколько строчек Smile

     

    Send-SMTPMail.ps1

    param (

    $Server = $SmtpHostPreference, # SMTP Сервер

    $From = $SmtpFromPreference, # Адрес отправителя

    [string[]]$To, # Получатели

    $Body = "", # Тело сообщения

    $Subject = "", # Тема сообщения

    [System.IO.FileInfo[]]$Attachment=@(), # Вложения

    [switch]$SSL, #Использовать SSL?

    $Credentials = $null #Учетные данные для подключения

    )

    Write-Verbose "Создаем объекты SmtpClient и MailMessage"

    $SmtpClient = New-Object System.Net.Mail.SmtpClient

    $Message = New-Object System.Net.Mail.MailMessage

    Write-Verbose "Устанавливаем свойства этих объектов"

    $SmtpClient.Host = $Server

    $SmtpClient.EnableSsl = $SSL

    if ($Credentials) {$SmtpClient.Credentials = $Credentials.GetNetworkCredential()}

    $Message.Body = $Body

    $Message.Subject = $Subject

    $Message.From = $From

    Write-Verbose "Создаем и добавляем вложения"

    $Attachment | ForEach-Object {

    $a = New-Object System.Net.Mail.Attachment($_.fullname)

    $Message.Attachments.Add($a)

    }

    Write-Verbose "Добавляем получателей"

    $To | ForEach-Object {$Message.To.Add($_)}

    Write-Verbose "Отправляем сообщение"

    $smtpclient.Send($Message)

    Write-Verbose "Удаляем объекты"

    $Message.Dispose()

     

     

     

    С гмейлом работает, проверил:

     

    Code Snippet

    PS> $cred = Get-Credential

    cmdlet Get-Credential at command pipeline position 1
    Supply values for the following parameters:
    Credential
    PS> .\send-smtpmail.ps1 -server smtp.gmail.com -from xaegrr@gmail.com -to xaegr@yandex.ru -body "Тест прошел успешно" -subject "Тест" -ssl -credentials $cred

     

     

Все ответы