Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум 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

 

Аватара для sunnykey

Пользователь


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

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


Цитата rar_xxx:
Пробуем так, тоже все проходит без ошибок , но и письма нет, убираем блок с присоединением пустое письмо приходит: »
Проверь на публичном почтовом сервере, типа mail.ru, если всё работает, то разбирайтесь со своим почтовиком.

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855


Отправлено: 15:41, 04-10-2013 | #2



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

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


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


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

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


Здравствуйте!
Помогите, пожалуйста, разобраться с проблемой.
Нужно отправить письмо из Powershell. Пользуюсь этим скриптом:

Код: Выделить весь код
$EmailFrom = 'user1@mail.ru'
$EmailTo = 'user2@mail.ru'
$Subject = "files"
$Body = "Test"
$SMTPServer = 'smtp.mail.ru'
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25)
$SMTPClient.Credentials = New-Object Net.NetworkCredential("user1@mail.ru", "password");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
Получаю такую ошибку:

Код: Выделить весь код
Исключение при вызове "Send" с "4" аргументами: "Неправильная последовательность команд. Ответ сервера: Administrative prohibition -- authorization required.  Users in your domain are not allowed to send email without authorizati
on.  See http://help.mail.ru/mail-help/mailer/popsmtp for details."
строка:8 знак:1
+ $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SmtpException
Если использовать ящик с yandex.ru:

Код: Выделить весь код
Исключение при вызове "Send" с "4" аргументами: "Неправильная последовательность команд. Ответ сервера: 5.5.4 Error: send AUTH command first."
строка:8 знак:1
+ $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SmtpException

Последний раз редактировалось almaz.husnullin, 18-11-2013 в 11:56. Причина: CODE


Отправлено: 11:31, 18-11-2013 | #3


Ветеран


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

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


Причину явно указали - неправильные учетные данные. Проверьте правильность логина и пароля.

$SMTPClient.Credentials = New-Object Net.NetworkCredential("user1@mail.ru", 'password')
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:24, 18-11-2013 | #4


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


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

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


спасибо. проблема действительно была в пароле, точнее в кавычках обрамляющих пароль.
В пароле содержится $ и если обрамлять такой пароль двойными кавычками, то в Powershell ISE он выделяется цветом как переменная.
Одинарные кавычки помогли.

Отправлено: 12:45, 18-11-2013 | #5


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


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

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


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

Отправлено: 16:43, 18-11-2013 | #6


Ветеран


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

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


Попробовать задать свойство NameEncoding:
Код: Выделить весь код
$att = New-Object System.Net.Mail.Attachment("C:\Windows\notepad.exe")
$att.NameEncoding = [Text.Encoding]::UTF8

Отправлено: 16:53, 18-11-2013 | #7


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


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

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


не помогло

Отправлено: 16:57, 18-11-2013 | #8


Ветеран


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

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


Если указать имя меньше 30 символов ,проблема сохраняется?
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:09, 18-11-2013 | #9


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


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

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


Если имя меньше 30 символов, все норм.
Можно ли "настроить правильную кодировку" для имен длиннее 30 символов?

Последний раз редактировалось almaz.husnullin, 19-11-2013 в 08:24.


Отправлено: 07:33, 19-11-2013 | #10



Компьютерный форум 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




 
Переход