通讯组和 Exchange 中的 EWS
了解 Exchange 中可用的不同类型的通讯组,以及如何在 EWS 托管 API 或 EWS 应用程序中管理它们。
通讯组是与单个别名或电子邮件地址相关联的电子邮件地址的集合。 通讯组 (有时也称为通讯组列表) 允许用户使用单个收件人地址向多个人员发送电子邮件。 由于通讯组成员身份以及邮件收件人可以在单个电子邮件线程之外进行管理,因此通讯组提供了一种将邮件分发给一组用户的绝佳方法。 可以使用 EWS 托管 API、EWS 和 Exchange 命令行管理程序以编程方式创建和管理通讯组。 在开始编程之前,让我们来了解可用的不同类型的通讯组以及管理这些通讯组的选项。
通讯组的类型
Exchange 支持三种类型的通讯组:
通用通讯组 - 已启用邮件的 Active Directory 通用通讯组对象。 通用通讯组用于将邮件分发给一组收件人。
安全组 - 已启用邮件的 Active Directory 对象;也称为通用安全组。 安全组用于为 Active Directory 域服务 (AD DS) 中的资源分配访问权限,以及分发消息。
联系人组 - 位于用户邮箱中的专用通讯组。
选择的通讯组类型取决于你计划存储通讯组的位置、谁将使用该通讯组以及该通讯组的用途。
通用通讯组
可以使用通用通讯组将收件人组合并到单个别名或电子邮件地址中。 由于通用通讯组存储在 AD DS 中,因此任何人都可以使用这些通讯组发送电子邮件,包括组织外部的用户。 可以使用 EWS 托管 API 或 EWS 来扩展通讯组,但若要创建和管理通讯组,需要使用 Exchange 命令行管理程序 cmdlet。
还可以使用通用通讯组来包含会议室的集合;例如,让用户更轻松地查找会议会议室。 用户可以将会议室列表(包含会议室资源邮箱的通用通讯组)添加到会议请求中,以查找可用会议室,而无需单独添加每个会议室。
可以创建在更新成员身份之前保持不变的静态通用通讯组,也可以创建动态通用通讯组。 动态通用通讯组查询已启用 Active Directory 邮件的对象,并根据结果生成组成员身份。 只要向组发送了电子邮件,就会重新计算组成员身份。
安全组
通用通讯组和安全组在大多数方面都是相同的。 但是,与通用通讯组不同,可以使用安全组向 AD DS 中的网络资源分配权限。 不能使用 EWS 托管 API 或 EWS 创建和管理安全组;请改为使用 Exchange 命令行管理程序 cmdlet。 但是,就像通用通讯组一样,可以使用 EWS 托管 API 或 EWS 来扩展安全组。
联系人组
如果不希望授予每个用户对服务器的管理访问权限以创建通讯组,但希望允许他们向大量人员发送单个邮件,则可以使用联系人组执行此操作。 联系人组没有与之关联的电子邮件地址,并且仅存在于一个用户的邮箱中;其他用户将无权访问它。 可以使用 EWS 托管 API 或 EWS 创建联系人组。
使用 EWS 托管 API 或 EWS 管理通讯组
可以使用 EWS 托管 API 或 EWS 扩展通用通讯组或安全组,并控制联系人组的创建和管理;但是,不能使用这些技术来创建或编辑这些组的成员。
表 1. 用于管理通讯组的 EWS 托管 API 方法和 EWS 操作
EWS 托管的 API 方法 | EWS 操作 | 使用 ... |
---|---|---|
ContactGroup 类 方法 |
CreateItem |
在 Exchange 存储中创建联系人组。 注意:不能使用 EWS 托管 API 或 EWS 创建通用通讯组或安全组。 |
ExpandGroup |
ExpandDL |
通过检索其成员列表,展开通用通讯组、安全组或联系人组。 |
FindItems |
FindItem |
在邮箱中搜索联系人组。 |
GetRooms |
GetRooms |
检索组织中指定会议室列表中所有会议室的集合。 会议室列表是仅包含会议室资源邮箱的通讯组。 |
ResolveName |
ResolveNames |
搜索并返回可能的候选项,以匹配不明确的名称。 候选项可以是通讯组。 |
可以使用 ExpandGroup 方法或 ExpandDL 操作返回的信息来确定组中的成员类型。 成员类型由 MailboxType EWS 托管 API 枚举和 MailboxType EWS 元素定义。
表 2. 通讯组成员类型
MailboxType 枚举值 | MailboxType 元素值 | 说明 |
---|---|---|
邮箱 |
邮箱 |
已启用邮件的 Active Directory 对象。 |
PublicGroup |
PublicDL |
刚刚展开的组中包含的通讯组。 若要获取成员的完整列表,请同时展开此组。 |
ContactGroup |
PrivateDL |
位于邮箱中的一组联系人,仅供该邮箱的用户使用。 |
联系人 |
联系人 |
Exchange 数据库联系人或 Active Directory 邮件联系人。 |
使用 Exchange 命令行管理程序管理通讯组
可以使用 Exchange 命令行管理程序 cmdlet 在代码中创建和管理通用通讯组和安全组。
注意
不能使用 Exchange 命令行管理程序 cmdlet 来管理联系人组。
表 3. 用于处理通讯组的 Exchange 命令行管理程序 cmdlet
Cmdlet | 使用 ... |
---|---|
Disable-DistributionGroup |
从已启用邮件的通讯组中删除邮件功能。 |
Enable-DistributionGroup |
启用现有通用组的邮件。 |
Get-DistributionGroup |
查询现有通讯组。 |
New-DistributionGroup |
创建通讯组。 |
Remove-DistributionGroup |
从 AD DS 中删除现有通讯组。 |
Set-DistributionGroup |
修改现有通讯组的设置。 |
Add-DistributionGroupMember |
将收件人添加到通讯组。 |
Get-DistributionGroupMember |
查找现有的通讯组成员。 |
Remove-DistributionGroupMember |
从通讯组中删除现有收件人。 |
Update-DistributionGroupMember |
更新指定通讯组的成员。 |
Get-DynamicDistributionGroup |
检索现有动态通讯组的设置。 |
New-DynamicDistributionGroup |
创建动态通讯组。 |
Remove-DynamicDistributionGroup |
删除现有的动态通讯组。 此 cmdlet 从 AD DS 中删除动态通讯组。 |
Set-DynamicDistributionGroup |
修改现有动态通讯组的设置。 |