2016-07-27 128 views
1

我正在構建一個應用程序,用於從組織內的電子郵件收集統計信息。讓我們假設這些組織使用Outlook 365 我希望能夠做的最簡單的方法如下:使用Outlook 365 API在組織中獲取電子郵件的最佳方式

  • 獲取權限讀取所有的郵件在組織
  • 獲取電子郵件+附件並運行我的統計

看來,有沒有簡單的方法與Outlook 365 我發現這個做到這一點:any-office-365-rest-api-to-get-messages-from-all-mailboxes-in-an-organization,但我不明白,如果它可以使用Outlook 365.我錯了,任何組織工作?我如何在隨機組織上安裝這樣的應用並獲得所有權限?

我想到了另一個解決方案,它有缺點但很容易: 組織爲我創建一個電子郵件地址,例如[email protected],並在Exchange 365中定義將所有電子郵件轉發到此地址。然後,我可以使用Outlook 365 REST API來獲取所有電子郵件並刪除那些我經過的郵件。 主要缺點是,我擔心這個郵箱會很快滿了,我會錯過很多郵件。根據this,郵箱應該有50GB,這是一個足夠大的緩衝區。

有沒有正常的方法來做到這一點?有沒有人遇到過這樣的問題?

非常感謝。

回答

0

您需要在Azure AD上創建一個mutlitenant應用程序。

如果您希望您的應用程序能夠讀取組織中的所有電子郵件(而不是已經登錄並授予您的應用程序的用戶的電子郵件)。您需要添加以下權限到應用程序:閱讀郵件中的所有郵箱(見圖片)

備註這個範圍admin_consent只。然後,您的應用程序需要由Office 365租戶的管理員進行驗證。你可以閱讀更多關於這個here

Azure AD application configuration

+0

感謝您的回覆! 最後一個問題,創建應用程序後的流程是什麼? 我的意思是,假設我現在有一個具有這些權限的應用程序。用戶如何登錄?在他這樣做後,我如何獲得所需的標記?鑑於此令牌,我可以使用REST API獲取我想要的所有信息? – Alex

+0

我真的可以談論委託作用域,你有一個令牌可以讓你代表連接的用戶請求API。您有兩種可能的流程:完整的「客戶端」(不適合您的情況)或服務器發出請求的代碼授權流程。這裏有好的文檔https://dev.office.com/blogs/oauth-and-openid-connect-for-office-365-developer。如果你想看看我是如何實現的(只委派範圍和user_consent),請參閱[我的應用程序Keluro](https://app.keluro.com)。但在你的情況下,你需要admin_consent授權應用程序並訪問所有郵箱。 –

相關問題