微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Microsoft Graph API 获取发件人 IP?

如何解决如何使用 Microsoft Graph API 获取发件人 IP?

我一直在尝试从以下提供的响应中获取发件人 IP :-

var formBody = FormBodyPublisher.newBuilder() .query("a","get_account") .query("account",account) .build(); var request = MutableRequest.POST("https://example.com",formBody); // Methanol implements an HttpClient that does nice things to your request/response. // Here,the Content-Type header will be added for you. var client = Methanol.create(); var response = client.send(request,BodyHandlers.ofString());

我得到的响应有多个 GET https://graph.microsoft.com/v1.0/me/messages/AAMkADhAAAW-VPeAAA=/?$select=internetMessageHeaders 标签,如下所示:-

Receiver

如何使用 Graph API 获取邮件的实际源发件人 IP?

除了上面提到的方法之外,还有其他使用Graph API获取Sender IP的方法吗?

解决方法

Graph API 响应类似于以下内容,Authentication-Results 为我提供了相关的源发件人 IP -

{
    "@odata.context":"<some-value>","@odata.etag":"<some-value>","id":"<some-value>","internetMessageHeaders":[
        {
            "name":"MIME-Version","value":"1.0"
        },{
            "name":"Content-Type","value":"multipart/report"
        },{
            "name":"x-custom-header-group-name","value":"Washington"
        },{
            "name":"x-custom-header-group-id","value":"WA001"
        },{
            "name":"Receiver","value":"<some-ip>"
        },{
            "name":"Authentication-Results","value":"spf=pass (sender ip is <some-ip>)...,"       
        }
    ]
}

现在,您只需要一个正则表达式来提取 -

  1. 获取 Authentication-Results 中存在的值
  2. 使用正则表达式 - \d{1,3}\.\d{1,3} 提取 IP,使用与正则表达式匹配的第一次出现。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。