Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a connector for Microsoft Exchange (or just the email component for Office 365) and is heavily inspired by the Sharepoint Connector.
It initially fetches the max(999) recently modified emails and allows indexing with web links that will open the references.
Specifically, it uses the Python O365 module to retrieve emails from an email account for an Azure tenant ordered by modified date then uses Beautifullsoup to remove the HTML Tags. New or modified emails are re-indexed. Emails with compatible attachments are also indexed. Supported file types are PDF, DOCX, XLSX, PPTX and TXT.
This connector supports multiple filters for either Categories, or Folder Paths and a Maximum Poll Size.
These filters prevent fetching every email from a mailbox and instead allow for creating rules externally to determine which emails should be indexed by Danswer. However the option to fetch all is available.
Security configuration requires Tennent ID, App ID and Secret and Account ID (Email Address)
To use this connector, you need to create an application in Azure and provide admin permissions for mail.read.
This connector does not support live/personal email accounts.
This is my first pull request and I did have a few issues following the contributing guide. Particularly the mypy type requirements.
Screenshots