将机器人连接到电子邮件
适用于:SDK v4
可将机器人配置为通过 Microsoft 365 电子邮件与用户进行通信。 配置机器人访问电子邮件帐户后,如果有新邮件到达,会收到一条消息。 然后,机器人可以使用电子邮件进行响应。 例如,在响应用户的电子邮件消息时,机器人可以通过消息“你好”发送电子邮件回复。 感谢你下达的订单! 我们将立即开始处理。”
电子邮件通道当前仅使用 Office 365。 目前不支持其他电子邮件服务。
警告
- 出于安全原因,Exchange Online 将于 2022 年 10 月 1 日禁用基本身份验证功能。 电子邮件通道现支持新的 Exchange Online 新式身份验证模型。 使用基本身份验证模型的机器人将于 2022 年 10 月更改后出现故障;如果租户管理员在此日期之前禁用基本身份验证,则会更早出现故障。 如欲了解详细信息,请参阅基本身份验证与 Exchange Online - 2021 年 9 月更新版。
- 创建“spambots”(包括发送不需要或未经请求的批量电子邮件的机器人)将被视为违反 Bot Framework 行为准则。
先决条件
- 如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
- 机器人的专用 Office 365 电子邮件帐户。
- 授予机器人
Mail.ReadWrite
和Mail.Send
访问权限的权限。 如欲了解详细信息,请参阅了解 Microsoft Entra ID 应用程序同意体验。
注意
不应该将自己的个人电子邮件帐户用于机器人,因为发送到该电子邮件帐户的每个邮件都将转发给机器人。 这可能导致机器人不恰当地向发件人发送响应。 因此,机器人应仅使用专用的 M365 电子邮件帐户。
配置电子邮件以使用新式身份验证
打开 Azure 门户。
打开机器人的 Azure 机器人资源边栏选项卡。
在左侧窗格中选择通道。
选择电子邮件打开配置电子邮件边栏选项卡。
将身份验证类型设置为新式身份验证 (OAUTH)。
在电子邮件地址中,输入机器人的专用 Office 365 电子邮件帐户。
选择“授权”。
出现提示时,登录到电子邮件帐户,授予读写权限,并向机器人发送权限。
成功后,会打开一个含有验证代码的页面。 拷贝验证代码。
在身份验证代码中,输入刚刚拷贝的验证代码。
选择应用完成电子邮件配置。
配置电子邮件使用基本身份验证
注意
- 不支持使用任何替换 Microsoft Entra ID 的供应商的联合身份验证。
- 出于安全原因,将于 2022 年 10 月 1 日禁用 Exchange Online 的基本身份验证功能。 应在最后期限前迁移所有机器人以使用新式身份验证。
- 如果使用 Microsoft Exchange Server,请确保先启用自动发现,然后再配置电子邮件以使用基本身份验证。
- 如果使用的是启用了 MFA 的 Office 365 帐户,请确保先为指定帐户禁用 MFA,然后再为电子邮件通道配置帐户。 否则,连接将失败。
打开 Azure 门户。
打开机器人的 Azure 机器人资源边栏选项卡。
在左侧窗格中,选择通道(预览版)打开通道边栏选项卡。
选择电子邮件打开配置电子邮件边栏选项卡。
- 将身份验证类型设置为基本身份验证(2022 年 10 月起禁用)。
- 在电子邮件地址中,输入机器人的专用 Office 365 电子邮件帐户。
- 在密码中,输入电子邮件帐户的密码。
- 选择应用完成电子邮件配置。
自定义电子邮件
电子邮件通道支持发送自定义值以使用活动 channelData
属性创建更高级的自定义电子邮件。
以下片段显示了从机器人到用户的传入自定义电子邮件的 channelData
的示例。
{
"type": "ActivityTypes.Message",
"locale": "en-Us",
"channelID": "email",
"fromName": { "id": "mybot@mydomain.com", "name": "My bot"},
"recipientName": { "id": "joe@otherdomain.com", "name": "Joe Doe"},
"conversation": { "id": "123123123123", "topic": "awesome chat" },
"channelData":
{
"htmlBody": "<html><body style = \"font-family: Calibri; font-size: 11pt;\" >This is more than awesome.</body></html>",
"importance": "high",
"ccRecipients": "Yasemin@adatum.com;Temel@adventure-works.com",
}
}
有关活动 channelData
属性的详细信息,请参阅创建自定义电子邮件。
疑难解答
有关处理对应用程序的同意时可能发生的错误,请参阅了解 Microsoft Entra ID 应用程序同意体验和执行对应用程序的同意时意外出现的错误。
如果机器人没有在 15 秒内返回 HTTP 状态代码“200 正常”作为对传入电子邮件的响应,则电子邮件通道会尝试重新发送该邮件,因此机器人可能会多次收到同一电子邮件活动。 如欲了解详细信息,请参阅机器人工作原理和如何排查超时错误一文中的 HTTP 详细信息部分。
其他资源
- 将机器人连接到通道
- 使用 Bot Framework SDK for .NET 实现特定于通道的功能
- 有关每个通道支持的功能的详细信息,请参阅通道参考一文