|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Отправка сообщения с помощью PowerShell |
|
PowerShell - Отправка сообщения с помощью PowerShell
|
Новый участник Сообщения: 2 |
Всем привет, у меня Microsoft Exchange Server 2010 ver. - 14.02.0318.004
Пытаюсь с помощью PowerShell отправить письмо с вложением. Так все отлично, письмо приходит: Send-MailMessage -From "..." -To "..." -Subject "Test #01" -Body "Just a test message." -SMTPServer "..." Send-MailMessage -From "..." -To "..." -Subject "Test #01" -Body "Just a test message." -Attachments "E:\ABC.txt" -SMTPServer "..." $Server = "..." # SMTP Сервер $From = "..." # Адрес отправителя $To = "..." # Получатель $Subject = "Необходима отправка меня" # Тема сообщения $Body = "Когда ты меня отправишь ?" # Тело сообщения $ListFile = Get-ChildItem "E:\att" # Вложения $SmtpClient = New-Object System.Net.Mail.SmtpClient $Message = New-Object System.Net.Mail.MailMessage $SmtpClient.Host = $Server $Message.From = $From $Message.To.Add($To) $Message.Subject = $Subject $Message.Body = $Body foreach ($File in $ListFile){ $Attachment = New-Object System.Net.Mail.Attachment $File.Fullname $Message.Attachments.Add($Attachment) } $SmtpClient.Send($Message) Write-Host "Complete!" $Message.Dispose() Что это за прикол? куда копать ? Я сервак не админю, но мне необходимо сделать авторассылку, стоит такая антиспам штука GFI MailEssentials, может это она может блокировать письма с вложениями, а без пропускать, от одной и той же внутренней почты? Или это в Exchange Server'е есть подобная защита ? |
|
Отправлено: 15:10, 12-09-2013 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Попробуйте установить обновление - http://support.microsoft.com/kb/2402064
|
Отправлено: 08:55, 19-11-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать спасибо большое! обновление помогло.
|
Отправлено: 10:23, 19-11-2013 | #12 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Здравствуйте!
Есть ли возможность получить результат отправки письма? Например письмо успешно отправлено или его не удалось отправить. |
Отправлено: 13:33, 01-04-2014 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата almaz.husnullin:
|
|
Отправлено: 13:57, 01-04-2014 | #14 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Нет, можно лишь только предполагать, что если метод Send ничего не вернул - то успех, в другом случаи возникнет исключение.
|
Отправлено: 14:08, 01-04-2014 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Kazun, не совсем так. Нельзя получить результат доставлено ли сообщение, а вот что отправлено — вполне можно. И как раз по обработке возникающих исключений, буде таковые.
|
Отправлено: 15:56, 01-04-2014 | #16 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Ловить исключение trap`ом?
Такой код почему-то всегда возвращает 0. param ( [string[]]$To="ящик2@pupkin.ru", # Получатели [string[]]$CC = "", # Получатели копии [string[]]$BCC = "", # Получатели скрытой копии $Body = "", # Тело сообщения $Subject = "", # Тема сообщения [System.IO.FileInfo[]]$Attachment=@() # Вложения ) trap [System.Net.Mail.SmtpFailedRecipientsException] { $res=-1 continue } $res=0 Write-Verbose "Создаем объекты SmtpClient и MailMessage" $From = "ящик1@yandex.ru" # Адрес отправителя $Server = "smtp.yandex.ru" # SMTP Сервер $SmtpClient = New-Object System.Net.Mail.SmtpClient $Message = New-Object System.Net.Mail.MailMessage Write-Verbose "Устанавливаем свойства этих объектов" $SmtpClient.Credentials = New-Object Net.NetworkCredential($From, 'пароль') $SmtpClient.Host = $Server $Message.Body = $Body $Message.IsBodyHtml = $True $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($_)} If ($CC -ne "") {$CC | ForEach-Object {$Message.CC.Add($_)}} If ($BCC -ne "") {$BCC | ForEach-Object {$Message.BCC.Add($_)}} Write-Verbose "Отправляем сообщение" $smtpclient.Send($Message) $res |
Отправлено: 16:19, 01-04-2014 | #17 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $res=-1 исправить на $script:res
Но лучше использовать try{$smtpclient.Send($Message)} catch {-1} |
Отправлено: 16:26, 01-04-2014 | #18 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Kazun, нужна Ваша помощь!
Требуется перенастроить скрипт на отправку с помощью SSL и через порт 465. При добавлении появляется ошибка: |
Отправлено: 12:15, 12-09-2014 | #19 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Для yandex измените порт с 465 на 587.
|
Отправлено: 12:29, 12-09-2014 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Отправка почты через PowerShell | Pavelnt | Скриптовые языки администрирования Windows | 6 | 17-08-2019 12:05 | |
2010 - Отправка сообщение автоматичиски | nureke | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 25-04-2013 14:24 | |
PowerShell - [решено] Сбор и анализ сведений о системе с помощью PowerShell | Vadikan | Скриптовые языки администрирования Windows | 0 | 25-03-2013 09:30 | |
PowerShell - [решено] Импорт из CSV в AD с помощью PowerShell | rox33 | Скриптовые языки администрирования Windows | 23 | 20-07-2012 15:45 | |
PowerShell - Импорт пользователей с помощью POwerShell и CSV файла. | Temafet | Скриптовые языки администрирования Windows | 19 | 18-01-2012 16:45 |
|