你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:如何创建身份验证凭据以使用 SMTP 发送电子邮件
本快速入门介绍如何使用 Entra 应用程序创建身份验证凭据,以便使用 SMTP 通过 Azure 通信服务发送电子邮件。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 已使用预配的域创建并准备好了一个 Azure 通信电子邮件资源。开始创建电子邮件通信资源
- 一个与电子邮件域连接的活动 Azure 通信服务资源,以及一个连接字符串。 开始将电子邮件资源与通信资源相连接
- 有权访问 Azure 通信服务资源的 Microsoft Entra 应用程序。 向 Microsoft Entra ID 注册应用程序并创建服务主体
- 有权访问 Azure 通信服务资源的 Microsoft Entra 应用程序的客户端密码。 创建新客户端机密
将有权访问 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 权限。 这可以通过使用参与者角色或创建自定义角色来实现。 按照以下步骤通过克隆现有角色创建自定义角色。
- 在门户中,可以通过先导航到需能在其中分配自定义角色的订阅、资源组或 Azure 通信服务资源,然后打开“访问控制(IAM)”来创建自定义角色。
- 单击“角色”选项卡以查看包含所有内置角色和自定义角色的列表。
- 搜索要克隆的角色,例如“读取者”角色。
- 单击行尾的省略号 (...),然后单击“克隆”。
- 单击“基本信息”选项卡,并为新角色命名。
- 单击“权限”选项卡,然后单击“添加权限”。 搜索“Microsoft.Communication”并选择“Azure 通信服务”
- 选择 Microsoft.Communication/CommunicationServices 读取、 Microsoft.Communication/CommunicationServices 写入和 Microsoft.Communication/EmailServices 写入权限。 单击“添加” 。
- 查看新角色的权限。 单击“查看+创建”,然后单击下一页上的“创建”。
为 Microsoft Entra 应用程序分配用于 Azure 通信服务资源的角色时,可使用新的自定义角色。 有关创建自定义角色的详细信息,请参阅使用 Azure 门户创建或更新 Azure 自定义角色
将自定义电子邮件角色分配给 Microsoft Entra 应用程序
- 在门户中,导航到需要能分配自定义角色的订阅、资源组或 Azure 通信服务资源,然后打开“访问控制(IAM)”。
- 单击“+ 添加”,然后选择“添加角色分配”。
- 在“角色”选项卡上,选择为使用 SMTP 发送电子邮件而创建的自定义角色,然后单击“下一步”。
- 在“成员”选项卡上,选择“用户、组或服务主体”,然后单击“选择成员”。
- 使用搜索框查找要用于身份验证的 Microsoft Entra 应用程序,并选择它。 然后单击“选择”。
- 确认所选内容后,单击“下一步”。
- 确认范围和成员后,单击“查看+分配”。
从 Microsoft Entra 应用程序信息创建 SMTP 凭据。
SMTP 身份验证用户名
Azure 通信服务支持将 Microsoft Entra 应用程序的凭据用作 SMTP 用户名和密码。 用户名由以下三个部分组成,可以用管道符或点分隔。
- Azure 通信服务资源名称。
- 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 应用程序的客户端机密之一。
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 应用程序凭据 |