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

如何在Microsoft Graph API发送邮件后获取HTTP响应?

获取Microsoft Graph API发送邮件的HTTP响应状态码

要拿到发送邮件后的HTTP响应(比如202 Accepted、400 Bad Request这类),可以通过两种方式实现:

1. 使用返回HttpResponseMessage的重载方法

Graph SDK的PostAsync提供了带返回值的重载版本,能直接获取完整的HTTP响应对象,从中提取状态码:

Dim graphClient = New GraphServiceClient(clientSecretCredential, scopes)
Dim requestBody = New Microsoft.Graph.Users.Item.SendMail.SendMailPostRequestBody With {
    .Message = New Message With { ... },
}

' 调用带返回值的PostAsync重载
Dim response = Await graphClient.Users("<OUTGOING_EMAIL_ADDRESS>").SendMail.PostAsync(requestBody, Nothing, Nothing, CancellationToken.None)

' 提取状态码
Dim statusCode = response.StatusCode
' 示例:判断请求是否已被接受
If statusCode = System.Net.HttpStatusCode.Accepted Then
    ' 处理发送成功逻辑
Else
    ' 根据不同状态码处理对应场景
End If

2. 捕获异常处理错误状态

当请求失败时(比如参数错误返回400、权限不足返回403),Graph SDK会抛出ServiceException,捕获这个异常就能拿到错误状态码和详细信息:

Try
    Dim graphClient = New GraphServiceClient(clientSecretCredential, scopes)
    Dim requestBody = New Microsoft.Graph.Users.Item.SendMail.SendMailPostRequestBody With {
        .Message = New Message With { ... },
    }

    Await graphClient.Users("<OUTGOING_EMAIL_ADDRESS>").SendMail.PostAsync(requestBody)
Catch ex As Microsoft.Graph.ServiceException
    ' 获取错误状态码
    Dim errorStatusCode = ex.StatusCode
    ' 获取具体错误描述
    Dim errorMsg = ex.Message
    ' 示例:处理400请求错误
    If errorStatusCode = System.Net.HttpStatusCode.BadRequest Then
        ' 针对参数错误做对应处理
    End If
End Try

补充说明:正常发送邮件成功时,Graph API通常返回202 Accepted,表示请求已被接收并将后台处理发送。失败场景下,ServiceException还包含错误代码、响应内容等信息,方便排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:48:16