你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:如何创建身份验证凭据以使用 SMTP 发送电子邮件

本快速入门介绍如何使用 Entra 应用程序创建身份验证凭据,以便使用 SMTP 通过 Azure 通信服务发送电子邮件。

先决条件

将有权访问 Azure 通信服务资源的 Microsoft Entra 应用程序用于 SMTP

构建使用 SMTP 协议发送电子邮件的应用的应用程序开发人员需要实现安全的新式身份验证。 Azure 通信服务通过利用 Microsoft Entra 应用程序服务主体可满足此需要。 SMTP 服务通过将 Azure 通信服务资源和 Microsoft Entra 应用程序服务主体信息相结合,代表用户向 Microsoft Entra 进行身份验证,由此确保安全无缝的电子邮件传输。

为 Microsoft Entra 应用程序创建自定义电子邮件角色

必须为 Microsoft Entra 应用程序分配一个角色,该角色同时具有对 Microsoft.Communication/CommunicationServices/Read、Microsoft.Communication/CommunicationServices/Write 和 Microsoft.Communication/EmailServices/write 权限。 这可以通过使用参与者角色或创建自定义角色来实现。 按照以下步骤通过克隆现有角色创建自定义角色。

  1. 在门户中,可以通过先导航到需能在其中分配自定义角色的订阅、资源组或 Azure 通信服务资源,然后打开“访问控制(IAM)”来创建自定义角色。 显示“访问控制”的屏幕截图。
  2. 单击“角色”选项卡以查看包含所有内置角色和自定义角色的列表。
  3. 搜索要克隆的角色,例如“读取者”角色。
  4. 单击行尾的省略号 (...),然后单击“克隆”。 显示克隆角色的屏幕截图。
  5. 单击“基本信息”选项卡,并为新角色命名。 显示为新自定义角色创建名称的屏幕截图。
  6. 单击“权限”选项卡,然后单击“添加权限”。 搜索“Microsoft.Communication”并选择“Azure 通信服务”显示为新自定义角色添加权限的屏幕截图。
  7. 选择 Microsoft.Communication/CommunicationServices 读取、 Microsoft.Communication/CommunicationServices 写入和 Microsoft.Communication/EmailServices 写入权限。 单击“添加” 。 显示添加 Azure 通信服务权限的屏幕截图。
  8. 查看新角色的权限。 单击“查看+创建”,然后单击下一页上的“创建”。 显示审查新自定义角色的屏幕截图。

为 Microsoft Entra 应用程序分配用于 Azure 通信服务资源的角色时,可使用新的自定义角色。 有关创建自定义角色的详细信息,请参阅使用 Azure 门户创建或更新 Azure 自定义角色

将自定义电子邮件角色分配给 Microsoft Entra 应用程序

  1. 在门户中,导航到需要能分配自定义角色的订阅、资源组或 Azure 通信服务资源,然后打开“访问控制(IAM)”显示“访问控制”的屏幕截图。
  2. 单击“+ 添加”,然后选择“添加角色分配”显示选择“添加角色分配”的屏幕截图。
  3. 在“角色”选项卡上,选择为使用 SMTP 发送电子邮件而创建的自定义角色,然后单击“下一步”。 显示选择自定义角色的屏幕截图。
  4. 在“成员”选项卡上,选择“用户、组或服务主体”,然后单击“选择成员”显示选择“选择成员”的屏幕截图。
  5. 使用搜索框查找要用于身份验证的 Microsoft Entra 应用程序,并选择它。 然后单击“选择”。 显示选择 Microsoft Entra 应用程序的屏幕截图。
  6. 确认所选内容后,单击“下一步”。 显示审查分配的屏幕截图。
  7. 确认范围和成员后,单击“查看+分配”。 显示分配自定义角色的屏幕截图。

从 Microsoft Entra 应用程序信息创建 SMTP 凭据。

SMTP 身份验证用户名

Azure 通信服务支持将 Microsoft Entra 应用程序的凭据用作 SMTP 用户名和密码。 用户名由以下三个部分组成,可以用管道符或点分隔。

  1. Azure 通信服务资源名称。 显示查找资源名称的屏幕截图。
  2. Microsoft Entra 应用程序 ID。 显示查找 Microsoft Entra 应用程序 ID 的屏幕截图。
  3. Microsoft Entra 租户 ID。 显示查找 Microsoft Entra 租户 ID 的屏幕截图。

以点分隔的格式:

username: <Azure Communication Services Resource name>.<Microsoft Entra Application ID>.<Microsoft Entra Tenant ID>

以管道符分隔的格式:

username: <Azure Communication Services Resource name>|<Microsoft Entra Application ID>|<Microsoft Entra Tenant ID>

SMTP 身份验证密码

密码是 Microsoft Entra 应用程序的客户端机密之一。 显示查找 Microsoft Entra 客户端机密的屏幕截图。

SMTP AUTH 客户端提交要求

  • 身份验证:支持使用 Microsoft Entra 应用程序详细信息作为凭据的用户名和密码身份验证。 Azure 通信服务 SMTP 服务将使用 Microsoft Entra 应用程序详细信息、代表用户获取访问令牌,并使用该令牌提交电子邮件。 由于未缓存 Microsoft Entra 令牌,因此可以通过更改 Microsoft Entra 应用程序客户端密码或更改 Azure 通信服务资源的访问控制来立即撤销访问权限。
  • Azure 通信服务:需要连接了 Azure 通信电子邮件资源和域的 Azure 通信服务资源。
  • 传输层安全性 (TLS):设备必须能够使用 TLS 1.2 及更高版本。
  • 端口:端口 587 是必需的,须在网络上取消阻止它。 某些网络防火墙或 ISP 会阻止端口,因为这是电子邮件服务器用于发送邮件的端口。
  • DNS:使用 DNS 名称 smtp.azurecomm.net。 不要对 Microsoft 365 或 Office 365 服务器使用 IP 地址,因为 IP 地址不受支持。

如何设置 SMTP AUTH 客户端提交

按相应指导,直接在设备或应用程序中输入以下设置(所使用的术语可能与本文不同)。 在方案满足 SMTP AUTH 客户端提交的先决条件的前提下,这些设置可使你能够使用 SMTP 命令从设备或应用程序发送电子邮件。

设备或应用程序设置
服务器/智能主机 smtp.azurecomm.net
端口 端口 587
TLS/StartTLS Enabled
用户名和密码 从有权访问 Azure 通信服务资源的应用程序输入 Microsoft Entra 应用程序凭据