Группы рассылки это особый тип получателей в 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 «;»
Добрый день в 2010м еще была опция для дин рассылок.
Отклонять сообщения от
Отклонять сообщения от Выберите вариант Нет отправителей, чтобы данный получатель не отклонял сообщения ни от каких отправителей из организации Exchange. Этот вариант выбран по умолчанию. Выберите вариант Отправители в следующем списке, чтобы данный получатель отклонял сообщения от указанных отправителей из организации Exchange.
После выбора этого варианта необходимо нажать кнопку Добавить для выбора отправителей, чьи сообщения будут отклоняться. В результате появится диалоговое окно Выбор получателей со списком всех получателей в лесу Active Directory. Выберите нужных получателей и нажмите кнопку ОК. Чтобы найти определенного получателя, введите его имя в поле Поиск и нажмите кнопку Найти. Чтобы удалить отправителя из списка, выберите его и нажмите кнопку Значок «Удалить».
а в 2016м ее нет.
Чтобы почтовый ящик пользователя John Smith отклонял сообщения от пользователей Joe Healy, Ellen Adams и членов группы рассылки Sales Department Contractors, выполните следующую команду:
Копировать код
Set-Mailbox -Identity "John Smith" -RejectMessagesFrom "Joe Healy","Ellen Adams" -RejectMessagesFromDLMembers "Sales Department Contractors"
Set-DynamicDistributionGroup надо канечно.
Доброго времени суток, а как исключить заблокированных пользователей из динамической группы рассылки? Например группа формируется по должности title. и пользователь ушел в отпуск на пару недель, а может и больше. нашел один вариант, но не шибко рабочий Set-DynamicDistributionGroup -Identity test_group -RecipientFilter {((Title -like «Корпоративный 1») -or (Title -like «корпоративный 2*»)) -and (ExchangeUserAccountControl -ne ‘AccountDisabled’)} последний параметр должен исключить блокированных.
Там придется использовать в запросе маску по UserAccountControl. Проблема в том, что значения бывают разные в зависимости от включнных опций:
https://winitpro.ru/index.php/2018/05/14/convertaciya-atributa-useraccountcontrol-v-ad/
Начни с такого:
Set-DynamicDistributionGroup -Identity test_group -RecipientFilter {((Title -like «Корпоративный 1») -or (Title -like «корпоративный 2*»)) -and not( (UserAccountControl -eq '514') -or (UserAccountControl -eq '546') -or (UserAccountControl -eq '66082')}
Disabled Account — 514
Disabled, Password Not Required — 546
Disabled, Password Doesn’t Expire & Not Required — 66082
спасибо за наводку протестим
Set-DynamicDistributionGroup -Identity test_group -RecipientFilter {((Title -like «*Корпоративный 1*») -or (Title -like «*Корпоративный 2*»)) -and -not (UserAccountControl -eq 514 -or UserAccountControl -eq 546 -or UserAccountControl -eq 66082)} рабочий вариант exch 2019
Добрый день!
Подскажите, я хочу всем группам заменить primarysmtpaddress.
Так чтобы было _name@_hold.com. где name наименование/alias группы.
Сменить primary smtp для всех групп можно скриптом:
$DLs = Get-DistributionGroup | Where-Object {$_.PrimarySMTPAddress -like "*contora.com*"}
ForEach ($DL in $DLs) {
$NewSMTPAddress = $DL.Alias + "@" + "hold.com"
Set-DistributionGroup -Identity $DL.Alias -PrimarySMTPAddress $NewSMTPAddress
}
Благодарю!
Добрый день!
Подскажите, пожалуйста, можно ли формировать каким-то образом динамические группы по двум и более OU?
Сделайте несколько условий в RecipientFilter
Set-DynamicDistributionGroup -Identity "Name1" -RecipientFilter {(RecipientType -eq 'UserMailbox') -and (((RecipientContainer -eq 'OU=OU1,DC=domain,DC=com') -or (RecipientContainer -eq 'OU=OU2,DC=domain,DC=com'))))}
Здравствуйте!
незнаю в ту ли ветку, но такой вопрос:
Как правильно сделать если пользователь имеет помимо основного адреса еще несколько алиасов, как сделать так чтоб он еще мог с этих алиасов тоже писать, т.е. выбирать в оутлуке с какого адреса отправлять письмо?
Спасибо
Отправка от имени дополнительного адреса (SMTP алиаса) доступна только в Exchange Online. В наземный Exchnage Server такое пока не подвезли.
в качестве обходных решений для отправки с дополнительных email адресов в Exchange Server приходитсяиспользовать отправку от имени другого пользователя, группы или общего почтового ящика.
Добрый день.
А можно как-то посмотреть в каких группах состоит контакт в exchange 2016?
$dn = (Get-MailContact Имя_Контакта).DistinguishedName
Get-Recipient -Filter "Members -eq '$dn'"
или так:
Get-ADObject -Identity $dn -Properties memberof |fl