如何为Microsoft Graph API自定义Azure用户邀请邮件模板?
自定义Azure AD邀请邮件的解决方案
目前通过Microsoft Graph API调用/invitations接口发送外部用户邀请时,无法直接自定义接口默认的邀请邮件模板,但可以通过以下两种替代方案实现自定义邮件样式的需求:
方案一:关闭自动发邮件,自行发送自定义邮件
- 调用接口时设置
sendInvitationMessage: false,阻止Graph API发送默认邀请邮件 - 接口返回的响应中会包含
inviteRedeemUrl,这是用户用于兑换邀请的唯一链接 - 使用你自己的邮件服务(内部邮件系统、第三方邮件服务均可)发送自定义样式的邮件,将
inviteRedeemUrl嵌入到邮件内容中
修改后的示例代码:
public async sendUserInvite(body: {email: string}) { // 调用接口创建邀请,不发送默认邮件 const invitationResponse = await this.client.api('/invitations').post({ invitedUserEmailAddress: body.email, inviteRedirectUrl: `http://localhost:3000/`, sendInvitationMessage: false }); // 替换为你的自定义邮件发送逻辑 await yourCustomEmailService.send({ to: body.email, subject: "欢迎加入我们的平台", htmlContent: ` <div style="max-width: 600px; margin: 0 auto; padding: 20px; border: 1px solid #eee; border-radius: 8px;"> <h2 style="color: #2d3748;">您收到了一份平台邀请</h2> <p>点击下方链接完成注册,加入我们:</p> <a href="${invitationResponse.inviteRedeemUrl}" style="display: inline-block; padding: 10px 20px; background-color: #3182ce; color: white; text-decoration: none; border-radius: 4px;">接受邀请</a> </div> ` }); }
方案二:Azure AD B2C租户专属:通过自定义策略配置邮件模板
如果你的场景基于Azure AD B2C租户,可以直接在B2C门户中配置自定义邀请邮件:
- 进入Azure AD B2C管理门户,选择对应的用户流或自定义策略
- 找到"邮件模板"设置项,上传自定义的HTML邮件内容,替换系统默认模板
- 配置完成后,调用
/invitations接口时会使用你自定义的模板发送邮件
注意:官方Microsoft Graph API的
/invitations接口并未提供直接修改默认邮件模板的参数,上述两种方案是目前可行的替代方案。
内容的提问来源于stack exchange,提问作者ItsCreeps
相关产品推荐
相关产品推荐

