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
Parents
  • 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?

  • Have not seen this before, is BODY_TEXT populated? It could be that the messages does not have HTML populated (that's very unlikely), but it could be that your O365 outlook settings prevent the HTML from being downloaded. We append the appropriate header per MS documentation but since it's a Prefer header, it may not be a given HTML is returned. One way to check would be to make the MS Graph API request by hand: use the connection details in one integration object to retrieve the OAuth token, then another integration object to use the token in a "messages" request with the appropriate headers. Then you can confirm if the content is returned by API. If not, then it's a conversation with your O365 admin.

Comment
  • Have not seen this before, is BODY_TEXT populated? It could be that the messages does not have HTML populated (that's very unlikely), but it could be that your O365 outlook settings prevent the HTML from being downloaded. We append the appropriate header per MS documentation but since it's a Prefer header, it may not be a given HTML is returned. One way to check would be to make the MS Graph API request by hand: use the connection details in one integration object to retrieve the OAuth token, then another integration object to use the token in a "messages" request with the appropriate headers. Then you can confirm if the content is returned by API. If not, then it's a conversation with your O365 admin.

Children
  • To answer this yes Body_Text is populated .  The EWS plugin for reading emails is working as expected and populating the Body_HTML field . But the graph Poller is not populating this field . Is it possible we are missing to pass a value in the input params ?

    O365 outlook settings prevent the HTML from being downloaded.  – HS -What setting is being referred here ? Is there is difference in EWS VS MS graph O365 settings ? Is this a mailbox setting ?

    use the connection details in one integration object to retrieve the OAuth token, then another integration object to use the token in a "messages" request with the appropriate headers. Then you can confirm if the content is returned by API.   HS – We would need help to understand this comment . Is this only to see if the MS graph API return the HTML content when reading emails from the mailbox  then yes – when we try it outside of Appian we are getting the expected result and the HTML_Body is getting populated reading emails from the same mailbox .