为简单邮件传输协议 (SMTP) 身份验证创建凭据

本文介绍如何使用 Microsoft Entra 应用程序创建使用简单邮件传输协议(SMTP)发送电子邮件的身份验证凭据, 以使用 Azure 通信服务发送电子邮件。

先决条件

使用 Microsoft Entra 应用程序进行 SMTP 身份验证

构建使用 SMTP 协议发送电子邮件的应用的应用程序开发人员需要实现安全的新式身份验证。 Azure 通信服务使用 Microsoft Entra 应用程序服务主体来提供安全身份验证。 通过创建 SMTP 用户名资源将Microsoft Entra 应用程序链接到通信服务资源。

SMTP 服务使用链接到 SMTP 用户名的 Microsoft Entra 应用程序信息,代表用户使用 Microsoft Entra 进行身份验证,以确保安全无缝的电子邮件传输。 SMTP 用户名资源是用户定义的,可以使用电子邮件格式或自由格式。 如果 SMTP 用户名使用电子邮件格式,则域必须是通信服务资源的链接域之一。

向 Microsoft Entra 应用程序分配角色

还需要使用内置角色或具有所需权限的自定义角色向 Microsoft Entra 应用程序授予对通信资源的访问权限。

将内置的通信和电子邮件服务所有者角色分配给 Microsoft Entra 应用程序

通信和电子邮件服务所有者 角色分配给Microsoft Entra 应用程序,以授予它对通信服务资源的访问权限。

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

使用 Azure 门户创建 SMTP 用户名

  1. 在门户中,导航到 Azure 通信服务资源,然后打开 SMTP 用户名显示 SMTP 用户名的屏幕截图。
  2. 单击“ +添加 SMTP 用户名 ”,然后选择Microsoft Entra 应用程序。 如果下拉列表中未显示 Microsoft Entra 应用程序,请参阅前面分配角色的步骤。 用户名可以是自定义文本或电子邮件地址。 显示添加 SMTP 用户名的屏幕截图。
  3. 验证 SMTP 用户名是否在列表中。 一旦满足使用用户名和 SMTP 发送电子邮件的所有要求,状态将更改为 “准备使用 ”。 显示列表中新建的 SMTP 用户名的屏幕截图。

SMTP 身份验证密码

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

SMTP AUTH 客户端提交要求

  • 身份验证:支持通过与 Microsoft Entra 应用程序详细信息关联的 SMTP 用户名进行用户名和密码身份验证。 Azure 通信服务 SMTP 服务使用 Microsoft Entra 应用程序用户的详细信息来代表用户获取访问令牌,并使用该令牌提交电子邮件。
  • Azure 通信服务:需要连接了 Azure 通信电子邮件资源和域的 Azure 通信服务资源。
  • 传输层安全性 (TLS):设备必须能够使用 TLS 1.2 及更高版本。
  • 端口:需要使用端口 587(推荐)或端口 25,并确保在网络上已解除阻止。 某些网络防火墙或 ISP 会阻止端口,因为这是电子邮件服务器用于发送邮件的端口。
  • DNS:使用 DNS 名称 smtp.azurecomm.net。 不要对 Microsoft 365 或 Office 365 服务器使用 IP 地址,因为 IP 地址不受支持。

如何设置 SMTP AUTH 客户端提交

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

设备或应用程序设置
服务器/智能主机 smtp.azurecomm.net
端口 端口 587(建议)或端口 25
TLS/StartTLS 已启用
用户名和密码 输入 SMTP 用户名和一个Microsoft Entra 应用程序的客户端机密。