Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Отправка сообщения с помощью PowerShell

Ответить
Настройки темы
PowerShell - Отправка сообщения с помощью PowerShell

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: rar_xxx
Дата: 12-09-2013
Всем привет, у меня 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

 

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


спасибо!

Отправлено: 12:36, 12-09-2014 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Сенк за тему, скопипастил чуть поправил, но теперь хочу после отправки вложений переместить их в другую папку.

Write-Verbose "Добавляем получателей"
$To | ForEach-Object {$Message.To.Add($_)}
Write-Verbose "Отправляем сообщение"
$smtpclient.Send($Message)
#$res
Start-Sleep -s 10
Get-ChildItem "d:\scripts\Send1\"|where { ! $_.PSIsContainer } |select -expand fullname | foreach-object {move-item $_ -destination "d:\scripts\Send1\old\"}


Move-Item : Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
строка:35 знак:116
+ Get-ChildItem "d:\scripts\Send1\"|where { ! $_.PSIsContainer } |select -expand fullname | foreach-object {move-item <<<< $_ -destination "d:\scripts\Send1\old\"}
+ CategoryInfo : WriteError: (D:\scripts\Send1\report_77843_20140926:FileInfo) [Move-Item], IOException
+ FullyQualifiedErrorId : MoveFileInfoItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand

Как только закрываю окно powershell.exe файлы можно перемещать, как ему сказать отпустить файлы ? что бы можно было их перенести в одном скрипте.

Отправлено: 13:52, 29-09-2014 | #22


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Воспользоваться методом Dispose() для объекта класса Net.Mail.Attachment, а лучше использовать командлет Send-MailMessage.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:52, 29-09-2014 | #23


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


А как его засунуть в цикл и в одно письмо вложить 10 файлов - вот так не работает %)

Dispose() так и не понял толком куда вставить, пробовал по разному на разные переменные - не работает.



$body = Get-ChildItem | Select -Exp FullName | Out-String
if($body)
{
send-mailmessage -to "User01 <admin@t.com.ua>" -from "User02 <it@a.ua>" -Attachment $body -subject "Test mail" -SmtpServer mx.a.ua -Body "test"

Отправлено: 16:29, 29-09-2014 | #24


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


1) Дохтур, у меня ЭТО! (с)

2) Изменить $body на :
Код: Выделить весь код
$body = Get-ChildItem | Select -Exp FullName
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:52, 29-09-2014 | #25


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Сенк, работает.
Но опять же с перемещением отправленных вложений возникает та-же проблема.

Move-Item : Процесс не может получить доступ к файлу, так как этот файл занят другим процессом

___

cd d:\scripts\Send1\
$body = Get-ChildItem | ?{ ! $_.PSIsContainer } | % { $_.FullName }
if($body)
{
send-mailmessage -to "User01 <a@p.com.ua>" -from "User02 <i@a.ua>" -Attachment $body -subject "Test mail" -SmtpServer m.a.ua -Body "test"
}
Start-Sleep -s 5

Get-ChildItem "d:\scripts\Send1\"|where { ! $_.PSIsContainer } |select -expand fullname | foreach-object {move-item $_ -destination "d:\scripts\Send1\old\"}

Отправлено: 13:13, 30-09-2014 | #26



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Отправка сообщения с помощью PowerShell

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход