Outlook 如何知道它是Microsoft Graph中的自动回复邮件?
我正在使用Microsoft Graph API获取邮件Outlook 如何知道它是Microsoft Graph中的自动回复邮件?,outlook,microsoft-graph-api,Outlook,Microsoft Graph Api,我正在使用Microsoft Graph API获取邮件 GET /v1.0/me/messages 它回来了 { "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('576552d5-3bc0-42a6-a23d-bfceb405db23')/messages", "@odata.nextLink": "https://graph.microsoft.com/v1.0/me/messages
GET /v1.0/me/messages
它回来了
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('576552d5-3bc0-42a6-a23d-bfceb405db23')/messages",
"@odata.nextLink": "https://graph.microsoft.com/v1.0/me/messages?$skip=11",
"value": [
{
"@odata.etag": "W/\"HwAAABYAAACpTc/InBsuTYwTUBb+VIb4AACqi2tx\"",
"id": "AAMkADBlZTUwNTkxLWVmODgtNDVhNC1iZjhlLTdjNjA1ODZlMDI2MgBGAAAAAACUbnk-iwQZRbXMgkfKtmYhBwCpTc-InBsuTYwTUBb_VIb4AAAAAAEMAACpTc-InBsuTYwTUBb_VIb4AACqNTk9AAA=",
"createdDateTime": "2017-12-06T21:57:09Z",
"lastModifiedDateTime": "2017-12-06T21:57:19Z",
"changeKey": "HwAAABYAAACpTc/InBsuTYwTUBb+VIb4AACqi8tx",
"categories": [],
"receivedDateTime": "2017-12-06T21:57:09Z",
"sentDateTime": "2017-12-06T21:56:16Z",
"hasAttachments": false,
"internetMessageId": "<e74a536a53d245e49d779d47f774f4a0@CO2PR00MB0214.namprd00.prod.outlook.com>",
"subject": "Automatic reply: Hi",
"bodyPreview": "I am OOF.",
"importance": "normal",
"parentFolderId": "AAMkADBlZTUwNTkxLWVmODgtNDVhNC1iZjhlLTdjNjA2ODZlMDI5MgAuAAAAAACUbnk-iwQZRbXMgkfKtmYhAQCpTc-InBsuTYwTUBb_VIb4AAAAAAEMAAA=",
"conversationId": "AAQkADBlZTUwNTkxLWVmODgtNDVhNC1iZjhlLTdjNjA2ODZlMDI5MgAQAPekscpearpHmBFbhG0DKuc=",
"isDeliveryReceiptRequested": null,
"isReadReceiptRequested": false,
"isRead": true,
"isDraft": false,
"webLink": "https://outlook.office365.com/owa/?ItemID=AAMkADBlZTUwNTkxLWVmODgtNDVhNC1iZjhlLTdjNjA1ODZlMDI5MgBGAAAAAACUbnk%2FiwQZRbXMgkfKtmYhBwCpTc%2FInBsuTYwTUBb%2BVIb4AAAAAAEMAACpTc%2FInBsuTYwTUBb%2BVIb4AACqNTk2AAA%3D&exvsurl=2&viewmodel=ReadMessageItem",
"inferenceClassification": "focused",
"body": {
"contentType": "html",
"content": "hi"
},
"sender": {
"emailAddress": {
"name": "Jack",
"address": "jack@example.com"
}
},
"from": {
"emailAddress": {
"name": "Jack",
"address": "jack@example.com"
}
},
"toRecipients": [
{
"emailAddress": {
"name": "Rose",
"address": "rose@example.com"
}
}
],
"ccRecipients": [],
"bccRecipients": [],
"replyTo": []
}
]
}
以确定是否为代码中的自动回复邮件
然而,这是不可靠的。因为有时我收到的邮件以不同的语言开头,比如Resposta automática:
那么如何正确地知道它是自动回复邮件呢?我不是专家,但我不相信有任何方法可以确定电子邮件是否是自动回复,除非电子邮件实际上包含一个字符串,上面写着“这是自动回复”或者别的什么。正如@Horkrine所说,没有官方保证的方法来检测电子邮件是否是自动回复 但有两种方法可能有用: 方法1:检测响应时间
如果你有能力,考虑检查电子邮件发送和响应之间的时间。如果时间在某个阈值内,几乎可以肯定是自动回复。例如,考虑在几秒钟内收到的答复。这与现代垃圾邮件机器人检测技术有很多关联
方法2:关键词 另一种方法是查找关键字,就像您现在所做的那样。然而,你还必须考虑其他语言、拼写变化、拼写错误等。你不会得到所有信息 例如:mail.subject.contains('Automatic')或mail.subject.contains('Auto-matic')或mail.subject.contains('Away')或mail.subject.contains('out of office'))
...
或mail.subject.contains('automática')…
与其键入这样的列表,我建议您在互联网上快速搜索,看看是否有这样的列表可以复制粘贴,因为肯定有人以前做过这种事情,并且有一些免费代码。刚刚找到另一个有趣的API,但是这只能帮助确定其他用户是Outlook还是Office 365用户时的自动邮件 为方便起见,请复制下面的演示
POST https://graph.microsoft.com/api/beta/users/{id|userPrincipalName}/getMailTips
{
"EmailAddresses": [
"danas@contoso.onmicrosoft.com",
"fannyd@contoso.onmicrosoft.com"
],
"MailTipsOptions": "automaticReplies, mailboxFullStatus"
}
它将返回类似于
{
"@odata.context":"https://graph.microsoft.com/api/beta/$metadata#Collection(microsoft.graph.mailTips)",
"value":[
{
"emailAddress":{
"name":"",
"address":"danas@contoso.onmicrosoft.com"
},
"automaticReplies":{
"message":"<style type=\"text/css\" style=\"\">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style>\r\n<div dir=\"ltr\">\r\n<div id=\"x_divtagdefaultwrapper\" style=\"font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif\">\r\n<p>Hi, I am on vacation right now. I'll get back to you after I return.<br>\r\n</p>\r\n</div>\r\n</div>",
"messageLanguage":{
"locale":"en-US",
"displayName":"English (United States)"
}
},
"mailboxFull":false
},
{
"emailAddress":{
"name":"",
"address":"fannyd@contoso.onmicrosoft.com"
},
"automaticReplies":{
"message":""
},
"mailboxFull":false
}
]
}
{
“@odata.context”:”https://graph.microsoft.com/api/beta/$metadata#集合(microsoft.graph.mailTips)”,
“价值”:[
{
“电子邮件地址”:{
“名称”:“,
“地址”:danas@contoso.onmicrosoft.com"
},
“自动复制”:{
“消息”:“\r\n\r\n\r\n\r\n\r\n\r\n你好,我现在正在度假。我回来后会给你回电话。
\r\n\r\n\r\n”,
“消息语言”:{
“区域设置”:“en US”,
“显示名称”:“英语(美国)”
}
},
“mailboxFull”:false
},
{
“电子邮件地址”:{
“名称”:“,
“地址”:fannyd@contoso.onmicrosoft.com"
},
“自动复制”:{
“消息”:”
},
“mailboxFull”:false
}
]
}
{
"@odata.context":"https://graph.microsoft.com/api/beta/$metadata#Collection(microsoft.graph.mailTips)",
"value":[
{
"emailAddress":{
"name":"",
"address":"danas@contoso.onmicrosoft.com"
},
"automaticReplies":{
"message":"<style type=\"text/css\" style=\"\">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style>\r\n<div dir=\"ltr\">\r\n<div id=\"x_divtagdefaultwrapper\" style=\"font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif\">\r\n<p>Hi, I am on vacation right now. I'll get back to you after I return.<br>\r\n</p>\r\n</div>\r\n</div>",
"messageLanguage":{
"locale":"en-US",
"displayName":"English (United States)"
}
},
"mailboxFull":false
},
{
"emailAddress":{
"name":"",
"address":"fannyd@contoso.onmicrosoft.com"
},
"automaticReplies":{
"message":""
},
"mailboxFull":false
}
]
}