MSGraph Email Poller

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:

  • Reads the mailbox using the MS Graph API
  • Convert the email to an EML file stored as an Appian document; Item attachments (calendar invites, messages) are kept in the eml file, File attachments removed from it and stored separately in the document management system.
  • Store all email file attachments as separate Appian documents
  • Store all email metadata (subject, author, recipients, etc...) into a set of tables in the database

Key Features & Functionality

All information how to deploy, configure and use the smart service is in the 'MS Graph Mail Poller.pdf' document in the downloaded zip. Extract the files in the ZIP and follow the instructions in the document.

Anonymous
  • v2.4.2 Release Notes
    • Updated libraries to the correct version - please upgrade from version 2.4.1 to 2.4.2
  • We are using MS Graph plugin to read emails and save the data into APP_MAIL_POLLER table but nothing gets populated for field "BODY_ HTML". 

    We have followed the instructions of the plug-in in regards table structures.

    When setting the node in a process model, for Content Type input parameter we are trying with "Both" and "HTML", but same results, no value for "BODY_HTML" field.

    Any ideas on what to try?

  • Release Notes - v2.4.1
    • Security Updates
  • 1) not sure what would constitute "outside of customers' network" since O365 is outside the network. Yes, it calls out to O365 and does inbox operations. Is it sending additional emails and such? No.

    2) No.

    3) Yes, but one at a time. You can string them serially, or better yet, set up a single mailbox for Appian to read, with other mailboxes "copied" (not sure of the right MS nomenclature here) to this single one. This reduces the overhead, speeds up the polling, and preserves all the email headers from the original inboxes. Customer's O365 admin should know how to set this up.

  • Hello

    We want to use plugin to poll volume of mails from mailbox and below concerns are raised.

    1) Does Plugin sends anything out of customer network in form of mails or any other way?

    2)Any known security issues ?

    3)Does it support multiple mailboxes ?

  • Hello luismiguelc. We too had an issue with the processed and exception folders not being populated.  We found that the folders needed to be named so that they appear within the first couple of folders of the email account.  We used underscores in front of the folder names like _Poller Processed and _Poller Failed for our folder names.  Within the process model MS Graph Mail Poller node, we entered the value ="_Poller Processed" for the Processed Folder Name parameter and ="_Poller Failed" for the Exception Folder Name.  This resolved the issue for us.  I'm not familiar with your second issue.

  • Hi! We set up the plugin, and at first, it polls all the emails on the inbox without issue. However, there are two problems we're facing:

    Firstly, the processed and unprocessed folders aren't being taking into account. We literally copy/pasted the name of the folders just in case, but the mails are just sent to the Delete and Junk folders instead. Not a big deal, but still an issue

    Then, the main problem is that sometimes, we get the following error: Error code: ErrorIrresolvableConflict
    Error message: The send or update operation could not be performed because the change key passed in the request does not match the current change key for the item., Cannot save changes made to an item to store.SaveStatus: IrresolvableConflict

    It seems to occur when there are mails on the Delete folder with the same Attachment as the mail that's trying to be read on the inbox. However, that isn't always the case, since at first, the plugin got all the mails regardless of the Attachment they had. 

    Has anyone encountered this problem and knows how to fix it?

  • Hi Raymond. 

    Sorry for the delay.  I just uploaded 2.3.2 yesterday and tested.  The new version resolves the erroneous email issue.  The erroneous email now goes to the identified exception folder and good emails are processed as usual and go to the success folder.  Thanks for such a quick response!  Also, sorry for the multiple posts.  I kept getting Appian errors for each post and the page was not updating, so I didn't think the messages were getting posted.

  • Thanks Mike for response! This helps us a lot.

    We will try this and will confirm the same.

  • So the new graph poller can strip the email from attachments and save the eml that way. There is an input called KeepFileAttachmentsInEml that determined that but it is not without side effects. Please refer to the readme for details.

    Now we understand that customers will be moving away from IMAP in many cases and unfortunately it is not going to be completely 1 to 1. I want to primarily ensure that any new versions do not break backwards compatibility for existing users of this poller. We will create a short migration guide to provide more instructions to those moving away from IMAP.