Overview
Need to poll emails from your Exchange server? This smart service can be used in a poller process and extract the data from the Microsoft Exchange server. Messages are stored in the Appian Document System, as well as the attachments. Meta data is stored in a database table for further processing.
This plug-in provides an alternative to sending emails to an Appian process model when inbound email integration is requested. Instead of the email being forwarded to Appian, this plug-in reads the emails directly from the Exchange mailbox using the MS Graph API as described below:
Key Features & Functionality
Performance Optimization Tip: Reduce Graph API Payload When Generating EML Files
Context: When generating EML files without file attachments, we can avoid retrieving unnecessary attachment data from Microsoft Graph API.
Location: In the extractDataAndDocFromMimeContentProxied method, when processing the EML generation path that excludes file attachments.
Recommended Change:
Use selective field retrieval with .select("id"):
AttachmentCollectionPage attachments = mc.graphClient.users(mailbox) .messages(copyMsg.id) .attachments() .buildRequest(requestOptions) .select("id") .get();
Instead of retrieving all fields:
AttachmentCollectionPage attachments = mc.graphClient.users(mailbox) .messages(copyMsg.id) .attachments() .buildRequest(requestOptions) .get();
Benefits:
Performance Impact: For messages with large attachments (e.g., 5+ files totaling 50+ MB), this can reduce API response time by 50-70% during EML generation without attachments.
This optimization applies specifically when generating EML files where file attachments are excluded (isKeepFileAttachmentsInEml != INCLUDE).
Hope this helps optimize your Graph API integrations!
Best regards, NLC