Poll Email from Microsoft Exchange EWS API

Overview

This plugin 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 plugin reads the emails directly from the Exchange mailbox using the EWS web services API.

Deployment Instructions

  • Deploy the plugin through the admin console of your Appian Cloud site or by copying the plugin zip file to the plugins folder
  • Download the component from the App Market. The zip file "EWS Mail Poller applications.zip" contains sample applications for use with the plugin
  • Use the application, scripts, or XSDs that correspond to your database
  • Configure a Third Party Credentials entry in the admin console with the following parameters:
    • username: email identifier of the mailbox to poll. This is usually the part of the email address coming before the '@' character, but depending on the Exchange server may instead be the entire email address or domain\EmailAddress
    • password: password to access the mailbox
    • proxyUsername (or proxyusername) : username of the proxy account
    • proxyPassword (or proxypassword) : password of the proxy account

Key Features & Functionality

Smart service "EWS Mail Poller To DB":

  • Reads the mailbox using the EWS web service API
  • Convert the email to an EWM file stored as an Appian document
  • Store all email attachments as Appian documents
  • Store all email metadata (subject, author, recipients, etc...) into a set of tables in the database

To use this plug-in:

  • Create a process model to invoke the plugin on a schedule basis like every few minutes
  • Configure a Secure Credential Store with the following attributes
  • Configure the smart service plugin with the required inputs including the name of the Secured Credential Store created above

By default, the emails successfully processed are moved to the folder Deleted Items and the emails that cannot be processed are moved to the folder Junk E-mails.

Anonymous
Parents
  • Hi Sylvain. We have just downloaded this plugin and are wondering how we go about creating the required database tables as there isn't any mention of the actual table names or columns required? thanks

  • Sylvain,  We have the same question as well as the documentation is missing the scripts.

  • Sylvain, I have a follow-up question regarding the time limit configuration in the EWS Email poller. It states that


    Time Limit - Integer - No - The maximum amount of time in milliseconds to continue processing email while the mailbox is not empty. Default 60,000 (1 minute). If more email remain after the time limit, they will be processed on the next execution of this smart service. If all email is processed before the time limit is reached the node will end early. A minimum of 1 and maximum of 59 minutes can be configured.

    It appears from the description that the poller will only work for a maximum of 59 minutes and will need to be somehow re-triggered on the next execution of the smart service ? Is this true ? If yes, would we have to configure some kind of timer to do this ?

  • I will update the app market component to include the app containing the CDTs

  • Also, put in a ticket with Appian Customer premier support (ticket :485140) but the response I received was that this was outside their purview as it is a plugin.  They asked that I post a comment here.

Comment Children
  • Sylvain, I have a follow-up question regarding the time limit configuration in the EWS Email poller. It states that


    Time Limit - Integer - No - The maximum amount of time in milliseconds to continue processing email while the mailbox is not empty. Default 60,000 (1 minute). If more email remain after the time limit, they will be processed on the next execution of this smart service. If all email is processed before the time limit is reached the node will end early. A minimum of 1 and maximum of 59 minutes can be configured.

    It appears from the description that the poller will only work for a maximum of 59 minutes and will need to be somehow re-triggered on the next execution of the smart service ? Is this true ? If yes, would we have to configure some kind of timer to do this ?

  • I will update the app market component to include the app containing the CDTs