Отправка почты через PowerShell
Добрый день!
Подскажите, есть вот такой скрипт: Код:
$Server = "" # SMTP Сервер Возникают ситуации когда скрипт необходимо перенести, а поэтому указание абсолютного пути не всегда удобно. Т.е. что нужно запись в переменнтую $ListFile чтобы список вложений формировался из файлов, которые находятся в папке Attachments, которая в свою очередь лежит рядом со скриптом? |
Проще использовать cmdlet - Send-MailMessage.Для определения папки из которой запускается скрипт,используйте переменную $MyInvocation:
$PathAtt = Join-Path (Split-Path $MyInvocation.MyCommand.Path) Attachments |
Спасибо!
А подскажите, возможно ли отправлять письмо средствами скрипта с авторизаций и поддержкой SSL так чтобы логин и пароль можно было явным образом указывать в скрипте, а не вводить используя вызов: Код:
$cred = Get-Credential |
Для Send-MailMessage есть параметр -UseSsl,для .Net указать свойство - $SmtpClient.EnableSsl = $true.
Можно и явно задать. $SmtpClient.Credentials= New-Object System.Net.NetworkCredential("UserName" , "Password") Или если для командлета: $pass = ConvertTo-SecureString "password" -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential("UserName" , $pass) |
Здравствуйте. Можно ли отправлять не один, а сразу 2 или 3 файла в одном письме используя скрипт PowerShell (.ps1)? На одном сайте нашёл очень удобный скрипт, но он отправляет только по одному файлу.
Скрытый текст
#Адрес сервера SMTP для отправки
$serverSmtp = "smtp.yandex.ru" #Порт сервера $port = 587 #От кого $From = "login@yandex.ru" #Кому $To = "myMail@mail.ru" #Тема письма $subject = "Письмо с вложением" #Логин и пароль от ящики с которого отправляете login@yandex.ru $user = "login" $pass = "12345678" #Путь до файла $file = "C:\arhive.zip" #Создаем два экземпляра класса $att = New-object Net.Mail.Attachment($file) $mes = New-Object System.Net.Mail.MailMessage #Формируем данные для отправки $mes.From = $from $mes.To.Add($to) $mes.Subject = $subject $mes.IsBodyHTML = $true $mes.Body = "<h1>Тестовое письмо</h1>" #Добавляем файл $mes.Attachments.Add($att) #Создаем экземпляр класса подключения к SMTP серверу $smtp = New-Object Net.Mail.SmtpClient($serverSmtp, $port) #Сервер использует SSL $smtp.EnableSSL = $true #Создаем экземпляр класса для авторизации на сервере яндекса $smtp.Credentials = New-Object System.Net.NetworkCredential($user, $pass); #Отправляем письмо, освобождаем память $smtp.Send($mes) $att.Dispose() Пробовал добавлять ещё одну строку $file = "C:\arhive.zip", пробовал писать $file2 = "C:\arhive.zip", но оба эти варианта не сработали. |
beowulf0208, чем не устраивает командлет Send-MailMessage?
|
Цитата:
Подсказали на ответах mail. Нужно добавить 3 строки в скрипт и тогда можно будет отправлять 2 файла. Вот эти строки: $att2 = New-object Net.Mail.Attachment($file2) $mes.Attachments.Add($att2) $file2 = "C:\arhive2.zip" |
Время: 15:03. |
Время: 15:03.
© OSzone.net 2001-