通过 C#/Graph 禁用 MS Teams 邀请邮件
Disable MS Teams invitation mail via C#/Graph
我在 C# 中有一个配置引擎,它使用 MS Graph 创建新的 MS Teams。每当将用户添加到团队(在团队客户端内)时,他都会收到 2 封邀请邮件 - 一封针对 O365 组,一封针对团队本身。
通过从 PnP 核心统一组实用程序获取的自定义代码(ResourceBehaviorOptions -> WelcomeEmailDisabled)禁用了 O365 组邮件:
class ExtendedO365Group : Microsoft.Graph.Group
{
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore, PropertyName = "resourceBehaviorOptions")]
public string[] ResourceBehaviorOptions { get; set; }
[JsonProperty("owners@odata.bind", NullValueHandling = NullValueHandling.Ignore)]
public string[] OwnersODataBind { get; set; }
[JsonProperty("members@odata.bind", NullValueHandling = NullValueHandling.Ignore)]
public string[] MembersODataBind { get; set; }
}
[...]
var newGroup = new ExtendedO365Group
{
DisplayName = displayName,
Description = description,
MailNickname = mailNickname,
MailEnabled = true,
SecurityEnabled = false,
Visibility = isPrivate == true ? "Private" : "Public",
GroupTypes = new List<string> { "Unified" },
ResourceBehaviorOptions = (disableWelcomeMail ? new string[] { "WelcomeEmailDisabled" } : null)
};
受此启发Graph Issue。
然后将 Teams 团队添加到组中,但似乎没有设置或属性 禁用 Teams 内部的邮件。
我也知道这个 PowerShell 命令,afaik 做同样的事情
Set-UnifiedGroup -Identity "groupname" -UnifiedGroupWelcomeMessageEnable:$false
并尝试使用
禁用邮件
MailEnabled = false,
但是所有这一切只禁用了第一封邮件,从 O365 组发送的主题为 "User xy has added you to the Group yz"(大致从德语翻译而来)和 link 到 Outlook 组。
它不会禁用来自 Teams "You have been added to a team in Microsoft Teams" 且带有 link 的第二封邮件以在 Teams Client 中打开它。
是否有一些新的 Graph 属性 或 C# 命令可以禁用所有邀请邮件?如果没有其他工作,我会尝试集成一个 PowerShell 命令(如果有的话)。
编辑:从 this Uservoice 和已接受的答案中可以看出,这确实是一个错误。
创建统一组时,您可以使用参数“UnifiedGroupWelcomeMessageEnabled
”禁用欢迎电子邮件 - 默认情况下处于启用状态。因此,您可以先创建统一组并将其设置为 $false,然后使用 Teams PowerShell cmdlet
将这些组转换为团队
New-Team -Group <GroupId of the group you just created>
请查看 SetUnifiedGroup 了解更多信息。
您似乎发现了我们现有 API 中的差距。我可以确认,我们目前不允许在 Desktop/Web 客户端以及通过图形 API 中抑制来自 Microsoft Teams 的 "Added to team" 电子邮件。
我们已注意到此请求并了解您尝试设计的场景。现在,我们想请您在此 UserVoice 中分享此反馈,以帮助我们更好地确定在未来版本中添加此功能的优先顺序。
干杯
- Phecda Louie(微软团队项目经理)
我在 C# 中有一个配置引擎,它使用 MS Graph 创建新的 MS Teams。每当将用户添加到团队(在团队客户端内)时,他都会收到 2 封邀请邮件 - 一封针对 O365 组,一封针对团队本身。
通过从 PnP 核心统一组实用程序获取的自定义代码(ResourceBehaviorOptions -> WelcomeEmailDisabled)禁用了 O365 组邮件:
class ExtendedO365Group : Microsoft.Graph.Group
{
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore, PropertyName = "resourceBehaviorOptions")]
public string[] ResourceBehaviorOptions { get; set; }
[JsonProperty("owners@odata.bind", NullValueHandling = NullValueHandling.Ignore)]
public string[] OwnersODataBind { get; set; }
[JsonProperty("members@odata.bind", NullValueHandling = NullValueHandling.Ignore)]
public string[] MembersODataBind { get; set; }
}
[...]
var newGroup = new ExtendedO365Group
{
DisplayName = displayName,
Description = description,
MailNickname = mailNickname,
MailEnabled = true,
SecurityEnabled = false,
Visibility = isPrivate == true ? "Private" : "Public",
GroupTypes = new List<string> { "Unified" },
ResourceBehaviorOptions = (disableWelcomeMail ? new string[] { "WelcomeEmailDisabled" } : null)
};
受此启发Graph Issue。
然后将 Teams 团队添加到组中,但似乎没有设置或属性 禁用 Teams 内部的邮件。
我也知道这个 PowerShell 命令,afaik 做同样的事情
Set-UnifiedGroup -Identity "groupname" -UnifiedGroupWelcomeMessageEnable:$false
并尝试使用
禁用邮件MailEnabled = false,
但是所有这一切只禁用了第一封邮件,从 O365 组发送的主题为 "User xy has added you to the Group yz"(大致从德语翻译而来)和 link 到 Outlook 组。 它不会禁用来自 Teams "You have been added to a team in Microsoft Teams" 且带有 link 的第二封邮件以在 Teams Client 中打开它。
是否有一些新的 Graph 属性 或 C# 命令可以禁用所有邀请邮件?如果没有其他工作,我会尝试集成一个 PowerShell 命令(如果有的话)。
编辑:从 this Uservoice 和已接受的答案中可以看出,这确实是一个错误。
创建统一组时,您可以使用参数“UnifiedGroupWelcomeMessageEnabled
”禁用欢迎电子邮件 - 默认情况下处于启用状态。因此,您可以先创建统一组并将其设置为 $false,然后使用 Teams PowerShell cmdlet
New-Team -Group <GroupId of the group you just created>
请查看 SetUnifiedGroup 了解更多信息。
您似乎发现了我们现有 API 中的差距。我可以确认,我们目前不允许在 Desktop/Web 客户端以及通过图形 API 中抑制来自 Microsoft Teams 的 "Added to team" 电子邮件。
我们已注意到此请求并了解您尝试设计的场景。现在,我们想请您在此 UserVoice 中分享此反馈,以帮助我们更好地确定在未来版本中添加此功能的优先顺序。
干杯 - Phecda Louie(微软团队项目经理)