Группы рассылки это особый тип получателей в Exchange. У группы рассылки есть email адрес, но нет ящика. Письма, отправленные на группу рассылки пересылаются на адреса всех членов группы. Группы рассылки удобно использовать, когда нужно отправить электронное письмо множеству получателей, не вводя по отдельности email адрес каждого из них.
В этой статье мы рассмотрим, как создать и управлять группами рассылки в Exchange (статья актуальна для всех поддерживаемых версий Exchange, в том числе для Exchange Online с небольшими модификациями). Для управления группами рассылки можно использовать Exchange Admin Сenter (EAC) или консоль PowerShell (Exchange Management Shell).
В Exchange есть три типа групп:
- Группы рассылки (Mail-enabled universal distribution groups) – используются только для рассылки писем. В обычных группах рассылки (не security) вы можете разрешить пользователям самим добавляться или удаляться из группы (membership approval);
- Группы безопасности (Mail-enabled universal security groups) – используются как для рассылки электронных писем, так и для предоставления доступа к ресурсам в домене Active Directory;Совет. Обычные группы безопасности в AD наполняются вручную. Но на сайте есть статья, в которой описывается как создать динамические группу пользователей в Active Directory с помощью PowerShell скрипта.
- Динамическая группа рассылки (Dynamic Distribution Group) – состав членов группы (получателей) формируется автоматически на основании LDAP-фильтра.
Статические группы рассылки Exchange
Можно создать группу рассылки через графическую консоль Exchange Admin Сenter (EAC).
- Запустите консоль EAC и перейдите в раздел Recipients -> Groups;
- Нажмите + и выберите тип группы Distribution Group;
- Display name – имя группы, которое будет отображаться в адресной книге;
- Alias – почтовый адрес группы (не должен превышать 64 символа);
- Notes – описание группы;
- Organizational unit – в каком OU создать группу рассылки;
- Owners — владелец группы (по умолчанию владельцем назначается создатель группы);
- Members — добавить членов группы;
- Choose whether owner approval is required to join the group – нужно ли подтверждение владельца при добавлении в группу (по умолчанию группа открытая — Open: Anyone can join this group without being approved by the group owners, можно сменить на Closed: Members can be added only by the group owners);
- Choose whether the group is open to leave – нужно ли подтверждение владельца на выход из группы.
Так же вы можете управлять группами рассылки из PowerShell (Exchange Management Shell). Рассмотрим полезные PowerShell команды для управления группами рассылки.
Создать новую группу рассылки Exchange:
New-DistributionGroup -Name “HelpDesk” -SamAccountName “HelpDesk” -OrganizationalUnit “winitpro.ru/ru/groups” -DisplayName "HelpDesk team" -Alias helpdesk
Создать открытую группу рассылки:
New-DistributionGroup -Name "ITNews "-Alias itnews –Type Distribution -MemberJoinRestriction open
Set-Group -Identity "IT Department" -Universal
или командлет Set-ADGroup из модуля AD PowerShell:
Get-AdGroup "IT Department" | Set-ADGroup -GroupScope Universal
По умолчанию письма на группу рассылки Exchange можно оправлять только с адресов пользователей внутри организации (для уменьшения количества спамерских рассылок). Чтобы разрешить получение писем на группу рассылки снаружи, используйте команду:
Get-DistributionGroup -identity “HelpDesk”| Set-DistributionGroup -RequireSenderAuthenticationEnabled $False
Чтобы отключать действие политики назначения адресов и изменить smtp адрес группы, используйте команды:
Set-DistributionGroup -Identity “HelpDesk” -EmailAddressPolicyEnabled $false
Set-DistributionGroup -Identity “HelpDesk” -PrimarySmtpAddress [email protected]
Можно добавить дополнительные email адреса для группы рассылки:
Set-DistributionGroup HelpDesk -EmailAddresses SMTP:[email protected],SMTP:[email protected]
Чтобы добавить в группу рассылки адрес нового пользователя:
Add-DistributionGroupMember -Identity HelpDesk -Member aaivanov
Для добавления в группу рассылки списка пользователей из файла (в файле каждый пользователь указывается с новой строки через ФИО либо email адрес):
Get-Content C:\users.txt | Add-DistributionGroupMember -Identity HelpDesk
Если вы хотите предоставить пользователям право отправки от имени группы рассылки, выполните команду:
Set-DistributionGroup HelpDesk -GrantSendOnBehalfTo aaivanov, dvpetrov
Вывести список членов группы рассылки:
Get-DistributionGroupMember –identity HelpDesk
Или можно экспортировать адреса членов группы в CSV файл:
Get-DistributionGroupMember –identity HelpDesk | ft name, primarysmtpaddress | Export-CSV c:\ps\HelpDesk_members.csv
Удалить пользователя из группы рассылки:
Remove-DistributionGroupMember -identity HelpDesk –member aaivanov -confirm:$false
Чтобы установит максимальный размер письма, который можно отправить на группу рассылки:
Get-DistributionGroup HelpDesk | Set-DistributionGroup -MaxReceiveSize 1MB
Динамические группы рассылки Exchange
Состав пользователей в динамических группах рассылки Exchange (Dynamic Distribution Group) обновляется автоматически на основе заданных критериев (фильтров). Такие фильтры по сути представляют собой LDAP запросы. Динамические группы рассылки можно формировать на основании различных атрибутов пользователей в Active Directory. Например, местоположения, названия отдела, должности и т.д. Exchange периодически проверяет и обновляет состав динамической группы рассылки на основании данных в AD.
Динамическую группу можно создать при помощи простой формы в Exchange Admin Center. Но мне больше интересен PowerShell путь.
Создадим простую динамическую группу рассылки Exchange:
New-DynamicDistributionGroup -Name 'IT dept' -RecipientContainer 'winitpro.ru/ru/user' -IncludedRecipients 'AllRecipients' -ConditionalDepartment 'Департамент ИТ' -OrganizationalUnit 'winitpro.ru/ru/groups/exchange' -Alias itdept
- RecipientContainer – контейнер AD, в котором искать пользователей
- IncludedRecipients – тип получателей
- ConditionalDepartment – фильтр по значению полю Company в AD у пользователей
Можно создать динамическую группу с помощью LDAP фильтра в атрибуте RecipientFilter так:
New-DynamicDistributionGroup -Name MSKSales -RecipientFilter {RecipientType -eq 'UserMailbox' -and Department -like '*продаж*' –and CustomAttribute12 -eq 'RU' –and City -eq 'Moscow' -and (Title -like '*начальник*' -or Title -like '*менеджер*')} -OrganizationalUnit Users
Вы можете просмотреть состав группы в EAC или с помощью PowerShell:
Get-Recipient -RecipientPreviewFilter (Get-DynamicDistributionGroup -Identity 'itdept').RecipientFilter | ft name, primarysmtpaddress
Назначить модераторов динамической группы рассылки:
Set-DynamicDistributionGroup itdept -ModeratedBy aaivanov, dbpetrov
Чтобы разрешить отправку на группу рассылки без модерации для определенных пользователей:
Set-DynamicDistributionGroup -Identity itdept -BypassModerationFromSendersOrMembers avsidorov
Чтобы разрешить доставку внешних писем (извне организации) на динамическую группу рассылки, используйте команду:
Get-DynamicDistributionGroup -identity “IT Dept”| Set-DynamicDistributionGroup -RequireSenderAuthenticationEnabled $False
Интересно было бы побольше узнать о настраиваемых атрибутах для динамических групп. В статье непосредственно о динамических группах этот момент тоже упущен, к сожалению.
Имеете в виду создание динамических групп из GUI? Я вот как-то больше привык к PowerShell, да и в интерфейсе EAC все вроде бы было очевидно.
Добрый день!
Как вносить правки в уже существующую динамическую группу?
Находите группу в EAC и редактируете или через POwerShell —
Set-DynamicDistributionGroup
Добавьте в инструкции после строк
Чтобы добавить в группу рассылки адрес нового пользователя:
Add-DistributionGroupMember -Identity HelpDesk -Member aaivanov
Чтобы добавить в группу рассылки список пользователей из файла
Get-Content C:\users.txt | Add-DistributionGroupMember -Identity HelpDesk
где C:\users.txt файл со списком пользователей, каждый пользователь с новой строки ФИО либо email адрес пользователя
Добавил, спасибо за полезное дополнение!
Как сделать группу рассылки чтоб деллегированные пользователи могли отправлять,а группе не приходили обратные письма?
Что-то вроде такого?
Get-DistributionGroup -Identity Group1 | Select -expand AcceptMessagesOnlyFromSendersOrMembers | ft Name
Set-DistributionGroup Group1 -AcceptMessagesOnlyFromSendersOrMembers user1
Я сделал проще.Группа доступа без мемберов, только отправить как.
Вы хотите отправлять письма от имени групп рассылки? Нужно дать нужному пользователю права Send-on-behal или SendAs (смотря что вы хотите видеть):
Add-ADPermission -Identity “Support” -User aivanov -ExtendedRights “Send As”
Set-DistributionGroup -Identity Support -GrantSendOnBehalfTo aivanov
Добрый день! Такой интересный вопрос- есть динамическая группа, получатели все пользователи с почтовыми ящиками Exchange, как сделать чтоб конкретный юзер не получал письмо с этой рассылки? как вообще сделать исключения в динам.группах?
Можно исключить одного пользователя:
-RecipientFilter {((RecipientType -eq 'UserMailbox') -and -not(Name -like 'baduser"'))}
но это неудобно, если вы захотите исключить еще одного. Проще сделать отдельную группу AD для исключенных пользователей и запретить добавление в группу рассылки пользователей этой группы:
-and (-not(MemberOfGroup -eq 'ExcludeDistrubutionGroup'))
Добрый день! Подскажите, а можно каким то образом исключить именно по OU, допустим я имею OU маркетинг, внутри по структуре компании присутствует OU Дизайнеры, при создании динамической группы рассылки через PS я хочу, что бы письма получали только пользователи внутри контейнера Маркетинг, но не Маркетинг/Дизайнеры, представляю как это сделать с применением фильтра по должности и иным атрибутам пользователя, но задался целью отсеять ненужных получателей именно по OU
Придется в фильтре делать исключение через членство в группе или еще какой-то дополнительный атриубут….
-not(MemberofGroup -eq ‘Group_FQDN‘))
ITVideoPRO
ITVideoPRO
11 месяцев назад
Я столкнулся с проблемой когда пользователь из смежного домена превращается в контакт и начинаются сыпаться отчеты о недоставке этим созданным контактам. То есть: есть один лес. Внутри леса 4 домена используют железный эксчендж, а один домен облачный эксчендж. Так как это дружественные компании, то есть необходимость имею общую офлайн адресную книгу с почтовыми контактами всех доменов. Но когда моя самописная программка создает на основе учетных записей смежного домена контакты в моем домене и когда эти контакты уходят в облако у меня начинается рулетка. Периодически тким контактам не уходят письма с ошибкой 550 5.1.11.
Не сталкивались с такой проблемой?
Не кудрявьте леса.
Пользуйте UPN Suffix для поддоменов.
Принцип прост — один домен и поддомены как OU со своим UPN Suffix (в аттрибутах OU)
Это рекомендации от MS, кстати.
ЗЫ. Ушел c Экченджа на связку SOgo (nightly-сборки — фри) + postfix + dovecot. Все привязано к АД.
SOgo умеет притворяться Эксченджем (базовые функции). Более 1000 пол-лей.
Кому интересно — пишите в телегу werter_l
Добрый день.
В ecp можно создать новую группу рассылки, а вот можно ли добавить адрес, для уже существующей группы в АД?
В exchange 2010 можно это сделать через консоль, а в 2013 как это сделать?
Да, можно назначить почтовые атрибуты на существующую группу безопасности AD.
Тип группы должен быть — universal (если она Global или domain), надос сконвертировать. Затем назначьте адрес через EMS:
Enable-DistributionGroup -Identity "TestGroup1" -PrimarySMTPAddress "[email protected]"
добрый день!
Созданы mail contact — ы, номер@sms.mtslife.ru
на них приходят уведомления в виде смс на смартфон. Все работает.
Создана Distribution group и члены этой группы 3 mail contact-а. Так вот сообщения не уходят. Ошибка Remote Server returned ‘554 5.1.1 ‘.
Если в группе оставить 1 mail contact, то все прекрасно работает. Не могу понять в чем причина.
554 5.1.1 — неправильный адрес. Проверьте корректность. Ну и посмотрите транспортный логи Exchange, там может что-то более конкретное будет видно
$FormatEnumerationLimit = -1
(Get-DistributionGroup) | Foreach {
$gr = $_
$members = (Get-DistributionGroupMember $_) | Foreach {$_.Name}
New-Object PsObject -Property @{
«Имя группы» = $gr.name
«E-mail группы» = $gr.PrimarySmtpAddress
«Члены группы» = $members
}
} | Select «Имя группы»,»E-mail группы», @{Name=’Члены группы’;Expression={[string]::join(“, ”, ($members))}} |
Export-csv c:\scripts\DistrbGroups.csv -encoding utf8 -Delimiter «;»