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

Azure Logic Apps服务账户无法获取审批人邮箱(UserEmailAddress显示Null)

解决Azure Logic Apps审批流程获取审批人邮箱的问题

一、服务账号下UserEmailAddress为Null的解决方法

  • 检查并配置服务账号的Graph API权限
    确保服务账号拥有User.Read.All或Directory.Read.All的应用权限(而非委托权限),并完成管理员同意。Logic Apps通过服务账号调用审批动作时,需要该权限读取用户信息以填充邮箱字段。

  • 改用Response Originator字段获取信息
    当UserEmailAddress为空时,尝试从审批动作的输出中提取Response Originator字段。该字段通常返回审批人的用户主体名称(UPN),格式类似user@domain.com,可直接作为邮箱地址使用。

  • 调用Microsoft Graph API获取用户邮箱
    如果审批动作仅返回用户ID(如Response Originator ID),可添加Microsoft Graph > Get user动作:

    1. 选择Get user动作,在User ID框中引用审批输出的Response Originator ID
    2. 从动作返回结果中提取mail或userPrincipalName字段作为邮箱地址

二、邮件转发后获取实际审批人邮箱的解决方法

  • 解析邮件头中的认证用户信息
    审批触发后,添加Office 365 Outlook > Get email headers动作,传入审批邮件ID。从返回的邮件头中提取X-MS-Exchange-Organization-AuthUser字段,该字段记录了实际执行审批操作的用户邮箱。可通过表达式直接提取:

    outputs('Get_email_headers')?['body/X-MS-Exchange-Organization-AuthUser']
    
  • 解析审批回调的HTTP请求内容
    若使用自定义审批或HTTP触发的审批,可通过Parse JSON动作解析回调请求的正文。通常回调请求会包含userPrincipalName、email等字段,示例schema如下:

    {
      "type": "object",
      "properties": {
        "userPrincipalName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        }
      }
    }
    

    解析完成后直接引用email字段即可。

  • 启用审批的响应者跟踪选项
    创建审批动作时,选择“批准/拒绝 - 高级”类型,勾选“跟踪实际响应者”选项。Logic Apps会自动记录实际点击按钮的用户信息,无需额外解析操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:25:16