2017-12-06 9 views
-1

私はMicrosoft Graph APIを使用してメールを取得しています。それはMicrosoft Graphの自動返信メールです。

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": "<[email protected]look.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": "[email protected]" 
       } 
      }, 
      "from": { 
       "emailAddress": { 
        "name": "Jack", 
        "address": "[email protected]" 
       } 
      }, 
      "toRecipients": [ 
       { 
        "emailAddress": { 
         "name": "Rose", 
         "address": "[email protected]" 
        } 
       } 
      ], 
      "ccRecipients": [], 
      "bccRecipients": [], 
      "replyTo": [] 
     } 
    ] 
} 

を返します。

今私は、コードに自動返信メールであるかどうかを判断するために

mail.subject.startsWith('Automatic reply:') 

を使用しています。

ただし、信頼性がありません。時々私はResposta automática:のような別の言語で始まるメールを受け取っていたからです。

それで、それを知る方法は正しく自動返信メールですか?

答えて

3

@ Horkrineは、メールが自動返信かどうかを正式に保証する方法はないと述べた。

方法1:応答時間

あなたが可能な場合は、送信されたメールと応答の間の時間の量をチェック考慮を検出

は、しかし、有用である可能性がある2つの方法があります。その時間が特定のしきい値内にある場合は、ほぼ確実に自動返信になります。たとえば、数秒以内に返信があったとします。これは、現代のスパムロボット検出技術と多くの相関関係があります。

方法2:それを行うためのキーワード

他の方法は、あなたが今やっているのと同様に、キーワードを探すことです。しかし、他の言語、スペルのバリエーション、スペルミスなどについても考慮する必要があります。あなたはすべてを得ることはできません。例えば

mail.subject.contains('Automatic') OR mail.subject.contains('Auto-matic') OR mail.subject.contains('Away') OR mail.subject.contains('out of office') ... OR mail.subject.contains('automática') ...

よりもむしろ、そのようなリストを入力して、私は、インターネット上のクイック検索を行うことをお勧めしますし、どのようなリストがある場合は、コピー&ペーストをすることができますから見る、などでしょう確かに誰かが前にこの種のことをして、いくつかのフリーコードを持っています。

3

私はエキスパートではありませんが、メールに実際に「これは自動返信です」という文字列が含まれていない限り、電子メールが自動返信かどうかを判断する方法はないと思います。

1

getMailTipsしかし、これは、他のユーザーがOutlookまたはOffice 365ユーザーである場合にのみ自動メールを判別するのに役立ちます。

以下のデモを便宜上コピーします。

POST https://graph.microsoft.com/api/beta/users/{id|userPrincipalName}/getMailTips 

{ 
    "EmailAddresses": [ 
     "[email protected]", 
     "[email protected]" 
    ], 
    "MailTipsOptions": "automaticReplies, mailboxFullStatus" 
} 

それは本当にクール

{ 
    "@odata.context":"https://graph.microsoft.com/api/beta/$metadata#Collection(microsoft.graph.mailTips)", 
    "value":[ 
     { 
      "emailAddress":{ 
       "name":"", 
       "address":"[email protected]" 
      }, 
      "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":"[email protected]" 
      }, 
      "automaticReplies":{ 
       "message":"" 
      }, 
      "mailboxFull":false 
     } 
    ] 
} 
+1

thatsのようなものを返します。 –

関連する問題