You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Azure AD B2C自定义邮件配置SMTP服务?

Azure AD B2C 配置自定义SMTP邮箱发送SSO邮件的方案

Azure AD B2C的内置SSPR/邮件验证机制不支持直接配置SMTP服务器,要实现用自定义邮箱发送SSO相关的验证邮件,需要通过以下两种官方认可的方案实现:

方案一:集成Azure Communication Services(ACS)

这是微软推荐的原生集成方案,步骤如下:

  1. 创建并配置ACS资源
    • 在Azure门户创建Azure Communication Services资源,获取资源的连接字符串
    • 若要使用自定义域名的邮箱发件,需在ACS中完成域名验证,并配置SPF、DKIM、DMARC记录,确保邮件投递可信度
  2. 在自定义策略中添加ACS技术配置文件
    在策略的<ClaimsProviders>节点下添加以下配置,替换占位符为你的实际信息:
    <ClaimsProvider>
      <DisplayName>Azure Communication Services</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Acs-Send-SSO-Verification-Email">
          <DisplayName>Send SSO verification email via ACS</DisplayName>
          <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureCommunicationServicesEmailProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
          <Metadata>
            <Item Key="ConnectionString">你的ACS连接字符串</Item>
            <Item Key="SenderAddress">your-custom-email@yourdomain.com</Item>
            <Item Key="Subject">SSO登录验证码</Item>
            <Item Key="HtmlTemplate">
              <![CDATA[
              <html>
                <body>
                  <p>你的SSO验证码是:{{{verificationCode}}}</p>
                </body>
              </html>
              ]]>
            </Item>
          </Metadata>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="to" />
            <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
          </InputClaims>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. 替换用户旅程中的邮件发送步骤
    在你的注册/登录用户旅程里,找到原来调用SSPR技术配置文件的环节,替换为上述ACS的技术配置文件ID,触发邮件发送时就会使用自定义邮箱发件

方案二:通过自定义REST API对接SMTP服务

如果不想用ACS,可自行搭建REST API调用SMTP服务器(或第三方邮件服务如SendGrid、Mailgun):

  1. 搭建自定义REST API
    • 编写接收收件邮箱、验证码等参数的POST接口,内部调用SMTP服务发送邮件
    • 确保API返回符合B2C要求的响应格式(成功返回{"status": "success"},失败返回包含错误信息的JSON)
  2. 在B2C策略中配置REST技术配置文件
    在<ClaimsProviders>节点下添加以下配置:
    <ClaimsProvider>
      <DisplayName>Custom SMTP Email Service</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="REST-Send-SSO-Email">
          <DisplayName>Send SSO email via custom REST API</DisplayName>
          <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
          <Metadata>
            <Item Key="ServiceUrl">https://你的API域名/send-sso-email</Item>
            <Item Key="AuthenticationType">None</Item> <!-- 若需认证,可改为Basic或OAuth2 -->
            <Item Key="SendClaimsIn">Body</Item>
          </Metadata>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="recipientEmail" />
            <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
          </InputClaims>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. 更新用户旅程
    将用户旅程中原来的邮件发送步骤替换为这个REST技术配置文件的ID即可

关键注意事项

  • 自定义邮箱域名必须配置SPF、DKIM、DMARC记录,否则邮件极易被标记为垃圾邮件
  • 若使用第三方邮件服务(如SendGrid),可直接调用其官方API,无需自行搭建SMTP服务器
  • 内置的SSPR技术配置文件仅支持Azure AD默认发件邮箱,无法自定义SMTP,必须替换为上述方案

内容的提问来源于stack exchange,提问作者TheGreatApe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 21:45:38