Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
许多因素决定了事件与订阅匹配时电子邮件通知的收件人。 如果你不知道,这些因素可能会导致收件箱收到过多或太少的电子邮件。 了解订阅的类型、其传递设置、传递首选项以及其他因素如何确定收件人集。
注释
本文中介绍的许多概念适用于早期版本的 Azure DevOps,尽管用户界面发生了更改。
自定义个人订阅
使用自定义个人订阅时,电子邮件将传递到拥有订阅的用户 的首选电子邮件地址 ,或发送到订阅上配置的电子邮件地址。
注释
对于本地 Azure DevOps Server,请配置 SMTP 服务器,以便团队成员可以从其组织或用户配置文件菜单中查看“通知”选项并接收通知。
个人订阅上的首选电子邮件地址(默认)
个人订阅上的自定义电子邮件地址
团队和群组的发送设置
当团队或组是通知的收件人时,传递设置控制默认传递行为。 每个订阅都配置有一个传递选项,用于查看收件人的传递设置。
可以在团队级别或组织级别管理订阅和传递设置。
组织级别设置
在 组织设置中,选择 全局通知>订阅者><团队>>交付设置。
从以下设置中进行选择:
- 传递到电子邮件地址:通知将传递到特定电子邮件地址。
- 传递到单个成员:通知将传递到组或团队的每个成员。 此设置通常是默认选项。 有关详细信息,请参阅 团队扩展。
- 不传递:默认情况下不会传递通知。
如果未显式选择团队或小组的发送设置,则设置将由组织级别设置的发送选项决定。 默认值为 “传递到单个成员 ”或 “不传送”。
小窍门
传递设置对话框不指示当前选择是显式设置还是继承。
自定义团队和群组订阅的收件人
自定义团队或组订阅的收件人由订阅确定。 对于某些送达选项,团队的默认送达设置用于确定收件人集。
以下交付选项适用于组或团队订阅:
- 按角色划分的团队成员:收件人是具有所选角色之一的团队或组的成员(例如工作项被分配者)。
- 团队首选项:收件人由团队或组的传递设置确定(不送达、 首选电子邮件地址或 团队成员)。
- 自定义电子邮件地址:收件人是指定的电子邮件地址。
- 团队成员:收件人是团队或组的所有成员,但选择退出订阅的成员除外。
- SOAP:与 API 管理类似,收件人通过将电子邮件地址(订阅)添加到 SOAP 服务来指定。
注释
遵守每个成员的默认传递设置,包括属于团队或组成员的组。
按角色组成的团队成员
电子邮件收件人列表由事件中具有角色的成员确定。 例如,分配工作项的用户具有 分配给(新) 的角色,而分配工作项的标识具有 分配给(上一个)的角色。 每个事件类型的角色的完整列表显示在 受支持的事件类型中。
对于大多数事件类型显示的 Skip 发起者 选项,控制是否应明确从收件人列表中排除启动事件的用户或群组。 一般情况下,应启用此选项(打开),因为大多数用户不想收到有关其自己的作的通知。
团队首选项
传递选项取自团队的交付设置,可以是以下选项之一:
- 传递到电子邮件地址:电子邮件将传递到团队的首选电子邮件地址。
- 传送至单个成员:过程已在以下部分“team_成员”中进行了描述。
- 不送达:未送达任何电子邮件。
团队的送达设置值显示在 地址 标签之后,无法更改。
自定义电子邮件地址
通知将发送到多个自定义电子邮件地址,这些地址由分号分隔。
团队成员
为了确定电子邮件收件人,团队或组的成员列表将被扩展。 在简单情况下,团队或组将扩展到个人列表,并且每个用户都包含在生成的电子邮件的 “To:”行中。 但是,扩展的结果可能很复杂,并在 团队和组扩展 部分更详细地解释。
默认订阅收件人
默认订阅的交付选项通常是一个或多个角色。 无法更改这些值。 角色和 Skip 发起者 选项因事件类型而异。 有关详细信息和可用于每个事件类型的角色列表,请参阅 支持的事件类型。
注释
跳过启动选项不适用于所有事件类型。
电子邮件收件人的团队和组的扩展
当团队或组收到通知,而订阅或传送偏好是针对所有成员时,团队必须进行“展开”以确定具体的电子邮件收件人列表。 此过程可能是递归的,最初从查看团队的直接成员开始。
对于最终收件人列表,仅考虑 未 选择退出订阅的成员。 任何作为个人用户的成员都会被添加到收件人列表中。
对于项目范围内的事件,Azure DevOps检查团队或组是否具有“查看项目级信息”权限。 如果将此权限设置为“拒绝”,Azure DevOps从收件人列表中筛选团队或组,并且不会评估其嵌套成员。 特定于资源的权限不会替换此项目级通知检查。 例如,将视图项目级信息设置为“允许”后,即使视图生成设置为“拒绝”的特定管道,组也可以接收生成完成通知。
仅保留 Azure DevOps Services 组。 对于每个组,将检查组的投递偏好:
- 不提供:不会对此组执行进一步评估,并评估下一个成员组。
- 传递到电子邮件地址:电子邮件地址将添加到最终收件人列表中。
- 向单个成员发送:该组会被展开(像其父组一样),并遵循相同规则来评估其成员。
情境
本部分探讨几个示例方案。 以下示例使用符号来表示团队成员的类型:
-
I:单个用户 -
T:嵌套团队或小组 -
E:启用邮件Microsoft Entra组
团队成员启用“不交付”设置
示例团队成员:
- 主团队有三个成员:用户
I1和I2嵌套团队T1。 - 团队
T1已启用 “不交付 ”设置。
仅用户 I1 并 I2 接收其首选联系人电子邮件地址的通知消息。 不会通知嵌套团队 T1 的成员。
团队成员启用“传递到单个成员”设置
示例团队成员:
- 主团队有三个成员:用户
I1和I2嵌套团队T1。 - 团队
T1有两个成员用户,I2以及I3。 - 用户
I2是主要团队和团队T1的成员。 - 团队
T1已启用“ 交付给单个成员 ”设置。
团队 T1 正在扩展以便识别其成员。
I1、I2和I3都在他们的首选联系人电子邮件地址接收通知消息。
团队含有嵌套小组
示例团队成员:
- 主团队有三个成员:用户
I1和I2嵌套团队T1。 - 团队
T1有三个成员:用户I2和I3嵌套团队T2。 - 团队
T2有两个成员用户,I4以及I5。 - 用户
I2是主要团队和团队T1的成员。 - 团队
T1已启用 “不交付 ”设置。 - 团队
T2已启用“ 交付给单个成员 ”设置。
由于团队T1 启用了“不交付”设置,团队不会被展开以标识其成员。 虽然团队 T2 已启用“ 交付给个人成员 ”设置,但团队 T2 嵌套在团队 T1中。 “不传递”配送偏好优先于T1成员制定的设置。 仅用户 I1 并 I2 接收其首选联系人电子邮件地址的通知消息。
已启用邮件Microsoft Entra组作为收件人
Azure DevOps处理启用邮件Microsoft Entra组的方式有所不同,具体取决于通知订阅是直接处理组,还是通过Azure DevOps团队或组访问组:
- 直接收件人:为启用邮件的Microsoft Entra组直接配置订阅时,Azure DevOps将通知发送到组的电子邮件地址。 Azure DevOps不会展开组或评估每个成员Azure DevOps权限。
- 嵌套收件人:启用邮件的Microsoft Entra组是Azure DevOps团队或组的成员时,Azure DevOps首先评估父团队或组的传递设置和查看项目级信息权限。 如果此权限设置为“拒绝”,则Azure DevOps筛选父级,并且不会将嵌套Microsoft Entra组添加到收件人列表中。
当启用邮件Microsoft Entra组也是Azure DevOps组的成员时,生成完成通知的预期结果如下:
| Subscriber | 权限配置 | 预期结果 |
|---|---|---|
| Azure DevOps 组 | 查看项目级信息是Azure DevOps组的拒绝。 | 筛选Azure DevOps组,因此嵌套Microsoft Entra组不会收到通知。 |
| 已启用邮件Microsoft Entra组 | 查看项目级信息是包含Microsoft Entra组的Azure DevOps组的拒绝。 | Microsoft Entra组接收通知,因为订阅直接解决了通知。 父Azure DevOps组的权限不适用于此订阅。 |
| Azure DevOps 组 | 查看项目级信息 为 “允许”,但 “查看生成 ”是 “拒绝 ”的特定管道。 | Azure DevOps组接收通知。 管道特定的拒绝在通过项目级通知检查后不会筛选组。 |
若要确保传递,请使用以下配置之一:
- 将Microsoft Entra组嵌套,并将“查看项目级信息”设置为“允许父Azure DevOps团队或组”。
- Azure DevOps应将通知直接发送到组地址时,将启用邮件Microsoft Entra组配置为直接收件人。
在配置直接传递之前,请确认已启用邮件Microsoft Entra组的所有成员都有权接收事件详细信息。 Azure DevOps将消息发送到组地址,而无需验证每个成员对Azure DevOps资源的访问权限。