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

如何通过Azure Logic Apps使用Microsoft Graph API从共享邮箱发送邮件

借助Azure Logic Apps通过Microsoft Graph API以共享邮箱身份发送邮件(系统分配身份)

完全可以实现,以下是具体步骤:

1. 为Logic App的系统分配身份授予Microsoft Graph应用权限

系统分配的托管身份需要应用类型的Mail.Send权限(而非委托权限),才能调用Graph API发送邮件:

  • 登录Azure门户,找到你的Logic App,进入「身份」→「系统分配」→点击「Azure AD角色和管理员」。
  • 点击「添加角色分配」,在「资源类型」中选择「Microsoft Graph」,然后搜索并选择「Mail.Send」权限(确保是应用权限,不是委托权限),完成分配。
  • 也可以用PowerShell快速配置:
    # 获取Logic App系统身份的对象ID
    $logicAppObjId = (Get-AzLogicApp -ResourceGroupName "<资源组名称>" -Name "<Logic App名称>").Identity.PrincipalId
    # 获取Microsoft Graph的服务主体ID
    $graphServicePrincipal = Get-AzureADServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
    # 获取Mail.Send应用权限的ID
    $mailSendPermissionId = $graphServicePrincipal.AppRoles | Where-Object { $_.Value -eq "Mail.Send" -and $_.AllowedMemberTypes -contains "Application" } | Select-Object -ExpandProperty Id
    # 分配权限
    New-AzureADServiceAppRoleAssignment -ObjectId $logicAppObjId -PrincipalId $logicAppObjId -ResourceId $graphServicePrincipal.ObjectId -Id $mailSendPermissionId
    

2. 在Logic App中配置HTTP动作调用Graph API

在Logic App设计器中添加「HTTP」动作,按以下参数配置:

  • 方法:POST
  • URI:https://graph.microsoft.com/v1.0/users/<共享邮箱完整邮箱地址>/sendMail
  • 身份验证:选择「托管标识」,「托管标识类型」选「系统分配的托管标识」,「资源」填写https://graph.microsoft.com
  • 请求体(JSON示例):
    {
      "message": {
        "subject": "共享邮箱测试邮件",
        "body": {
          "contentType": "Text",
          "content": "这是通过Logic App系统身份发送的邮件"
        },
        "toRecipients": [
          {
            "emailAddress": {
              "address": "recipient@example.com"
            }
          }
        ]
      },
      "saveToSentItems": false
    }
    
    注:saveToSentItems设为false可避免共享邮箱已发送文件夹的权限问题,根据实际需求调整。

3. 验证Exchange Online的Send As权限

确认你之前配置的共享邮箱Send As权限已生效,可通过PowerShell检查:

Get-RecipientPermission -Identity "<共享邮箱邮箱地址>" | Where-Object {$_.Trustee -eq "<Logic App系统身份的显示名称/UPN>"}

确保返回结果中AccessRights包含SendAs。

常见问题排查

  • 若出现403错误:检查Graph的Mail.Send应用权限是否分配到位,Exchange的Send As权限是否正确,等待5-10分钟让权限生效后重试。
  • 系统身份的UPN可在Logic App的「身份」页面查看,格式通常为LogicApp名称@租户域名.onmicrosoft.com。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:15:49