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(including digitally signed emails) using the MS Graph API
  • Convert the email to an EML file stored as an Appian document, with attachments removed from it
  • Store all email 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
  • v4.2.8 Release Notes
    • Security patch updated
  • Hello, we are trying to use "MSGraph Email Poller" for the first time, configured all the attributes in admin console and process model, however, seeing the below error. Anyone has faced before during initial setup?

    Error code: ErrorInvalidUser
    Error message: The requested user 'abc@xyz.com' is invalid.
    
    GET https://graph.microsoft.com//v1.0/users/abc@xyz.com/mailFolders/deleteditems
    SdkVersion : graph-java/v5.80.0
    
    
    404 : 
    [...]
    
    [Some information was truncated for brevity, enable debug logging for more details]

  • BCC columns will not be populated as they are hidden by the mail server on purpose. The only time you could populate them is if you are sending an email and preserving details.

    Honestly, not sure why we have these columns in a mail poller. 

  • Hello, we have the MS Graph Email Poller installed. As far as I know it has been installed correctly, it is functioning correctly for the most part. However, today I noticed that the BCC_NAMES and BCC_EMAILS columns are not being populated. Is there a specific configuration or anything that needs to be set up in order to populate those columns?

  • Hi, 

    We have several emails ending up in the exception folder, today we have 12 emails where the error in the logs is:

    2025-04-11 02:48:22,537 [Appian Work Item - 2042542 - WorkID 832 - execution00 - process 36048198 - model 1283 : UnattendedJavaActivityRequest] ERROR com.appiancs.msgraphmail.MSGraphDBHandler - Error writing mail to database
    java.lang.NullPointerException

    We would appreciate it if you could provide us with more detailed information about this error so that we can prevent emails from being sent to the exceptions folder.

    Thanks in advance

  • Seems to be solved with the release 4.2.7

  • You need to make sure the that application tied to the client credentials you have received have access to the mailbox you are trying to connect to.

  • Hi Team,

    We are using msgraph mail poller plugin to read emails. We are getting below error while reading emails. Could you please help on this ?

    Error Message : Error code: ErrorAccessDenied Error message: Access to OData is disabled: [RAOP] : Blocked by tenant configured AppOnly AccessPolicy settings. GET

    Thank you in advance for your help

  • v4.2.7 Release Notes
    • Security patch updated
  • Microsoft setup steps

    • Create top level mailbox per environment for email polling
    • Create mailbox folders for processed emails and failed emails
    • Set up server side forward and deliver rules to copy emails from Shared Inboxes to Top Level Inbox
    • Register Azure application
      • Mail.ReadWrite (for polling)
      • Mail.Send (for reply capabilities from each mailbox)
      • Top Level Inbox requires sendAs permission to all Shared Inboxes
      • Restrict application access to only Shared Inboxes & Top Level Inbox
      • OAuth 2.0 Client Credentials grant type
      • Application Permission:
        • Mail.ReadWrite (for polling)
        • Mail.Send (for reply capabilities from each mailbox)
        • Top Level Inbox requires sendAs permission to all Shared Inboxes
        Restrict application access to only Shared Inboxes & Top Level Inbox