Powershell если не существует файл отправить почту

Обновлено: 06.07.2024

Ознакомьтесь с новым центром администрирования Exchange! Этот опыт является современным, интеллектуальным, доступным и более лучшим. Персонализация панели мониторинга, управление перекрестной миграцией клиентов, улучшение функции Группы и другие. Попробуйте прямо сейчас!

Разрешения, которые можно назначить делегатам для почтовых ящиков и групп в Exchange Online, описаны в следующей таблице:

Примечание. Хотя вы можете использовать Exchange Online PowerShell для назначения некоторых или всех этих разрешений другим типам делегатов на другие типы объектов получателей, в этой статье основное внимание уделяется типам объектов делегирования и получателей, которые дают полезные результаты.

Если разрешить полный доступ в почтовый ящик, скрытый из списков адресов, делегат не сможет открыть почтовый ящик. По умолчанию почтовые ящики обнаружения скрыты из списков адресов.

По умолчанию функция автоматического сопоставления почтовых ящиков использует автообнаружиние для автоматического открытия почтового ящика в профиле Outlook делегата (в дополнение к собственному почтовому ящику). Обратите внимание, что автоматическое сопоставление будет работать только для отдельных пользователей, которые получили соответствующие разрешения, и не будет работать для какой-либо группы. Если вы не хотите автоматической картографии почтовых ящиков, необходимо принять одно из следующих действий:

- Чтобы назначить разрешение полного доступа с параметром, используйте в Exchange Online PowerShell Exchange Online-mailboxPermission. -AutoMapping $false Дополнительные сведения см. в статье Использование Exchange Online PowerShell для назначения разрешения на полный доступ к почтовым ящикам в этой статье.

Почтовые ящики ресурса

Почтовые пользователи с учетными записями

Не разрешает представителю просматривать содержимое почтового ящика.

Почтовые ящики ресурса

Общие почтовые ящики

динамические группы рассылки

группы безопасности с включенной поддержкой почты.

Почтовые пользователи с учетными записями

Не разрешает представителю просматривать содержимое почтового ящика.

Почтовые ящики ресурса

динамические группы рассылки

группы безопасности с включенной поддержкой почты.

Почтовые пользователи с учетными записями

группы безопасности с включенной поддержкой почты.

Если у пользователя есть разрешения Отправка как и отправка от имени в почтовый ящик или группу, всегда используется разрешение Send As.

Что нужно знать перед началом работы

Предполагаемое время для завершения каждой процедуры: 2 минуты.

Для выполнения этой процедуры (процедур) необходимы соответствующие разрешения. Чтобы узнать о необходимых разрешениях, см. запись "Параметры почтовых ящиков" в разрешении функций в Exchange Online статье.

Чтобы открыть центр администрирования и использовать его, Exchange центре администрирования в Exchange Online. Сведения о том, как подключиться к Exchange Online PowerShell, см. в статье Подключение к Exchange Online PowerShell.

При добавлении почтового ящика в Outlook с помощью advanced Параметры будет добавлен только основной почтовый ящик; архивный почтовый ящик не будет добавлен. Если пользователю необходимо также получить доступ к архивным почтовым ящикам, почтовый ящик должен быть добавлен Outlook в качестве второй учетной записи в том же Outlook профиле.

Сведения о ярлыках клавиатуры, которые могут применяться к процедурам в этой статье, см. в статье Клавишные ярлыки для центра администрирования Exchange клавиатуры.

Возникли проблемы? Обратитесь за помощью к участникам форумов Exchange. Посетите форумы в Exchange Online или Exchange Online Protection.

Назначение разрешений отдельным почтовым ящикам с помощью Центра администрирования Exchange

В Центре администрирования Exchange выберите Получатели в области функций. В зависимости от типа почтового ящика, которому требуется назначить разрешения, выберите одну из следующих вкладок:

  • Почтовые ящики: пользовательские или связанные почтовые ящики.
  • Ресурсы: почтовые ящики комнат или оборудования.
  • Общие: Общие почтовые ящики.

В списке почтовых ящиков выберите почтовый ящик, для который необходимо назначить разрешения, а затем нажмите кнопку Изменить Редактирование. .

На открывшейся странице свойств почтового ящика нажмите Делегирование почтового ящика и настройте одно или несколько из следующих разрешений:


Чтобы назначить разрешения делегатам, нажмите кнопку Добавить значок в соответствии с соответствующим разрешением. Появляется диалоговое окно, в которое перечислены пользователи или группы, которые могут получить разрешение, назначенное им. Выберите пользователя или группу из списка и нажмите кнопку Добавить. Повторите эти действия необходимое количество раз. Вы также можете искать пользователей или группы в поле поиска, введя все или часть имени, а затем нажав значок поиска . По завершению выбора делегатов нажмите кнопку ОК.

Чтобы удалить разрешение делегата, выберите делегата в списке под соответствующим разрешением и нажмите кнопку Удалить Удалить. .

Выполнив необходимые действия, нажмите кнопку Сохранить.

Назначение разрешений нескольким почтовым ящикам одновременно с помощью Центра администрирования Exchange

В Центре администрирования Exchange выберите элементы Получатели > Почтовые ящики.

Выберите почтовые ящики, для которых необходимо назначить разрешения. Вы можете нажать один почтовый ящик, а затем, удерживая клавишу SHIFT, щелкнуть другой, чтобы выбрать диапазон почтовых ящиков. Кроме того, удерживая клавишу CTRL, можно выбрать несколько отдельных почтовых ящиков. При этом заголовок области сведений изменится на Массовое изменение, как показано на представленной ниже схеме.

В нижней части области сведений нажмите Дополнительные параметры. В параметре Делегирования почтовых ящиков, который отображается, выберите Добавить или Удалить. В зависимости от выбранной команды выполните одно из следующих действий:

  • Добавить. В диалоговом окне "Добавить объем" в диалоговом окне "Добавить", которое отображается, нажмите кнопку Добавить значок в соответствии с соответствующим разрешением (Send As,Send on Behalf, или Full Access). По завершению выбора пользователей или групп для добавления в качестве делегатов нажмите кнопку Сохранить.
  • Удаление. В диалоговом окне "Удаление делегирования с массовым удалением", которое отображается, нажмите кнопку Добавить значок Добавить. в соответствии с соответствующим разрешением (Send As,Send on Behalf, или Full Access). По завершению выбора пользователей или групп для удаления из существующих делегатов щелкните Сохранить.

Назначение разрешений группам с помощью Центра администрирования Exchange

В Центре администрирования Exchange выберите Получатели > Группы.

В списке групп выберите группу, для которую необходимо назначить разрешения, а затем нажмите кнопку Изменить .

На открывшейся странице свойств группы нажмите Делегирование группы и настройте одно из следующих разрешений:


Чтобы назначить разрешения делегатам, нажмите кнопку Добавить значок в соответствии с соответствующим разрешением. Появляется диалоговое окно, в которое перечислены пользователи или группы, которые могут получить разрешение, назначенное им. Выберите пользователя или группу из списка и нажмите кнопку Добавить. Повторите эти действия необходимое количество раз. Вы также можете искать пользователей или группы в поле поиска, введя все или часть имени, а затем нажав значок поиска . По завершению выбора делегатов нажмите кнопку ОК.

Чтобы удалить разрешение делегата, выберите делегата в списке под соответствующим разрешением и нажмите кнопку Удалить Удалить. .

Выполнив необходимые действия, нажмите кнопку Сохранить.

Используйте Exchange Online PowerShell для назначения разрешения полного доступа почтовым ящикам

Для управления разрешением "Полный доступ" для почтовых ящиков используются командлеты Add-MailboxPermission и Remove-MailboxPermission. В этих командлетах используется одинаковый базовый синтаксис.

В этом примере разрешение полного доступа к почтовому ящику Терри Адамса назначается представителю Рэймонду Сэму.

В этом примере Esther Valle назначает разрешение на полный доступ к почтовому ящику поиска по умолчанию организации и предотвращает автоматическое открытие почтового ящика в Outlook.

В этом примере членам поддерживающей почту группы безопасности Helpdesk назначается разрешение на полный доступ к общему почтовому ящику под названием Helpdesk Tickets.

В этом примере из почтового ящика пользователя Ayla Kol удаляется разрешение на полный доступ для пользователя Jim Hance.

Дополнительные сведения о синтаксисе и параметрах см. в разделе:

Как убедиться, что все получилось?

Чтобы убедиться, что вы успешно назначены или удалены разрешения на полный доступ для делегата в почтовом ящике, используйте следующие процедуры:

В свойствах почтового ящика в EAC убедитесь, что делегат находится или не указан в делегирования почтовых ящиков > полным доступом.

Замените удостоверение почтового ящика и запустите следующую команду в Exchange Online PowerShell, чтобы убедиться, что делегат указан или <MailboxIdentity> не указан..

Дополнительные сведения см. в статье Get-MailboxPermission.

Используйте Exchange Online PowerShell для назначения разрешения Send As почтовым ящикам и группам

Для управления разрешением Отправка как для почтовых ящиков и групп используются коды Add-RecipientPermission и Remove-RecipientPermission. В этих командлетах используется одинаковый базовый синтаксис.

Дополнительные сведения о синтаксисе и параметрах см. в разделе:

Как убедиться, что все получилось?

Чтобы убедиться, что вы успешно назначены или удалены разрешения Send As для делегата в почтовом ящике или группе, используйте следующие процедуры:

В свойствах почтового ящика или группы в EAC убедитесь, что делегат находится или не указан в делегирования почтовых ящиков > Отправка как или отправка группы > Как.

Замените имя, псевдоним или адрес электронной почты почтового ящика или группы и запустите следующую команду в <MailboxIdentity> Exchange Online PowerShell, чтобы убедиться, что делегат указан или не <DelegateIdentity> указан.

Используйте Exchange Online PowerShell для назначения разрешения Отправка от имени почтовым ящикам и группам

Параметр GrantSendOnBehalfTo используется в различных почтовых ящиках и группах set-cmdlets для управления разрешением Отправка от имени для почтовых ящиков и групп:

  • Set-Mailbox
  • Set-DistributionGroup: группы рассылки и группы безопасности с поддержкой почты.
  • Настроить DynamicDistributionGroup
  • Set-UnifiedGroup: Microsoft 365 групп.

Базовый синтаксис этих командлетов:

Параметр GrantSendOnBehalfTo имеет следующие параметры для значений делегирования:

  • Замена существующих делегатов: <DelegateIdentity> или "<DelegateIdentity1>","<DelegateIdentity2>".
  • Добавление или удаление делегатов, не затрагивая других делегатов: @
  • Удаление всех делегатов: Используйте значение $null .

Как проверить, что все получилось?

Чтобы убедиться, что вы успешно назначены или удалены разрешения Отправка от имени делегата в почтовом ящике или группе, используйте следующие процедуры:

В свойствах почтового ящика или группы в EAC убедитесь, что делегат находится или не указан в делегирования почтовых ящиков > Отправка как или отправка группы > Как.

Замените или замените удостоверение почтового ящика или группы и запустите одну из следующих команд в <MailboxIdentity> Exchange Online PowerShell, чтобы убедиться, что делегат указан или <GroupIdentity> не указан.

Группа рассылки или группа безопасности с поддержкой почты:

Динамическая группа рассылки:

Microsoft 365 группы:

Следующие шаги

Дополнительные сведения о том, как делегаты могут использовать разрешения, которые им назначены в почтовых ящиках и группах, см. в следующих статьях:

date

02.02.2021

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 6

Для получения базовой информации о синтаксисе командлета, выполните команду:

командлет Send-MailMessage отправки почты из powershell

Адрес SMTP сервера для отправки email указывать не обязательно, если вы задали адрес почтового сервера в переменной окружения $PSEmailServer.

Следующая простейшая команда PowerShell отправит письмо с указанной темой (Subject) и содержимым (Body) нескольким получателям.

Для удобства редактирования эту команду отправки можно представить так:

Send-MailMessage `
-SmtpServer smtp.winitpro.ru `
-To 'admin@winitpro.ru','manager@winitpro.ru' `
-From 'server@winitpro.ru' `
-Subject "test" `
-Body "Тема письма на русском" `
-Encoding 'UTF8'

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

отправка тестового письма из powershell русская кодировка

В Windows PowerShell по умолчанию используются кодировки ANSI и ASCII. Если вы обновили свою версию до PowerShell Core 7.1, имейте в виду что в этой версии по умолчанию уже используется кодировка UTF8. В следующей таблице перечислены параметры SMTP серверов популярных публичных email провайдеров, которые вы можете использовать для отправки почты из PowerShell (обратите внимание, что у большинства из них нужно дополнительно разрешить отправку писем через SMTP из интерфейса аккаунта):

В этом случае вы можете аутентифицироваться на SMTP сервере с помощью параметра –Credential.

Можно запросить данные пользователядля аутентификации интерактивно:

Send-MailMessage …… -Credential (Get-Credential)

powershell Send-MailMessage отправка почты с аутентфикацией

Можно указать учетную запись для авторизации через переменную:

$cred = Get-Credential
Send-MailMessage . -Credential $cred

Если же вам нужно сохранить пароль для подключения к smtp серверу непосредственно в коде скрипта PowerShell, используйте такую конструкцию:

$mypasswd = ConvertTo-SecureString "$trongPass1" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("username", $mypasswd)
Send-MailMessage . –Credential $mycreds

Если нужно добавить в письмо вложение, используйте параметр –Attachments. В следующем примере мы отправим письмо в формате HTML и прикрепим к письму файлы report1.txt и report2.txt с локального диска:

$MailMessage = @To manager@winitpro.ru", "manager2@winitpro.ru"
From = "DC server <server@winitpro.ru>"
Subject = "Отчет с сервера DC"
Body smtp.winitpro.ru"
Port = 25
UseSsl = $false
BodyAsHtml = $true
Encoding = “UTF8”
Attachment = “C:\ps\report1.txt”, “C:\ps\report2.txt”
>
Send-MailMessage @MailMessage -Credential $cred

Вот как выглядит это письмо с HTML форматированием и вложениями в интерфейсе Outlook.

Блог творческого ИТ-практика. Возьми свою мысль и дай ей ускорение идеи. В моем фокусе: сети, безопасность, виртуализация, web, мультимедиа.

А А Sunday, 1 May 2016

Отправка почты с помощью Powershell.

Потрудимся в честь праздника? А вместо привычной лопаты будет Powershell. Вот была у меня необходимость читать логи сервера по утрам. Всегда важно прийти на работу, открыть почту и вот они логи. Вначале я любил задействовать для этого почтового клиента ThеBat. О, великий ТheВat мог многое из комадной строки: thebat.exe /SEND<account mask1>[;account mask2[;account mask3[. ]]]

Но с переходом на VB-скрипты необходимость в нем для таких задача отпала. Потому как на VBScript отправка, к примеру, файла server.log по e-mail выглядела просто так:


Set objEmail = CreateObject("CDO.Message")
objEmail.From = "mymail address"
objEmail.To = "yourmail address"
objEmail.Subject = "About our server"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "our email-server name"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update


Set FSO=WScript.CreateObject("Scripting.FileSystemObject")
Set F=FSO.OpenTextFile("servel.log",1)
retval=""
retval=F.ReadAll
F.Close
objEmail.Textbody = retval
objEmail.Send

Так было. Но вчера еще один клиент попросил сделать такую же автоматическую рассылку с. MS Outlook, по расписанию. Скажу сразу что для MS Outlook расписания по отправке почты в общепринятом понимании нет. Есть там отложенная разовая отправка, и все. Поэтому я опять же обратил свой взор на Powershell. Как тут дела у нас с отправкой почты по расписанию? Неплохо, очень даже неплохо. $EmailFrom = "mymail address"
$EmailTo = "yourmail address"
$Subject = "About"
$Body = "About server. " $smtp = New-Object net.mail.smtpclient($SmtpServer)
$smtp.Send($EmailFrom, $EmailTo, $Subject, $Body)

А можно вообще одной строкой:


Send-MailMessage -From mymail -To yourmail -SmtpServer emailrsever -Subject "About" `
-Body "About server. "


Берем такой PS-скрипт и вставляем его запуск в шедулер сервера. Важное отличие здесь в том что во втором варианте с кириллицей опять же могут возникнуть проблемы. Но это скорее зависит от шрифта который подвязан для самого Powershell.


$serverSmtp = "smtp.yandex.ru"
$port = 587
$From = "login@yandex.ru"
$To = "MyMail@mail.ru"
$subject = "Письмо с вложением"
$user = "login"
$pass = "01234567"


//Путь к файлу
$file = "D:\arhive.zip"


//Формируем данные для отправки
$mes.From = $from
$mes.To.Add($to)
$mes.Subject = $subject
$mes.IsBodyHTML = $true
$mes.Body = "<h1>Тестовое письмо</h1>"


//Создаем экземпляр класса подключения к SMTP серверу
$smtp = New-Object Net.Mail.SmtpClient($serverSmtp, $port)


//Отправляем письмо, освобождаем память
$smtp.Send($mes)
$att.Dispose()


Работу последнего скрипта не проверрял лично, он найден на просторах сети.

Читайте также: