我一直在尝试从以下提供的响应中获取发件人 IP:-
GET https://graph.microsoft.com/v1.0/me/messages/AAMkADhAAAW-VPeAAA=/?$select=internetMessageHeaders
.
我得到的响应有多个Receiver
标签,如下所示:-
{
"@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":"Receiver",
"value":"<some-ip>"
},
]
}
如何使用 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":"Receiver",
"value":"<some-ip>"
},
{
"name":"Authentication-Results",
"value":"spf=pass (sender ip is <some-ip>)...,"
}
]
}
现在,你只需要一个正则表达式来提取 -
Authentication-Results
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
提取 IP,使用与正则表达式匹配的第一次出现。