Plug-in (Function & Smart Service)Free

MSGraph Mail Poller

by Appian Corporation

Description

Need to poll emails from your Exchange server? This smart service can be used in a poller process and extract the data from the 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

Features

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. This plugin currently supports only MySQL and Oracle databases

Release notes

Fix OkHttp connection leaks in MSGraphMessageHandler. Implemented try-with-resources for all InputStream network calls when downloading attachments and MIME content.

Version history (47)

4.4.1

Upgraded azure library for fixing vulnerabilities.

4.4.0

Now supporting simultaneous polling for up to five distinct mailboxes.

4.3.3

Updated rules for table names and vulnerabilities.

4.3.2

Updated DBHandler to fix SQLi vulnerabilities.

4.3.1

Upgraded logback-classic library to fix CVE and added validation check before insertion to eliminate SQL vulnerability.

4.3.0

Version 4.3.0 - Changes Conversation ID and Conversation Index are now saved from the inbound email to the database.

Additional Note: Use the add-on database scripts from supplemental files while upgrading. This DB scripts are add on to the existing ones in the supplemental files and to be used only after upgrading to new version. If using old version existing DB scripts works, if using V4.3.0 and above use existing ones + add-on DB scripts.

4.2.12

Upgraded angus dependencies for vulnerability fixes.

4.2.11

Performance improvement for handling large sets of email attachments.

4.2.10

Added angus dependency because angus activation not exposed to plugin in LCP

4.2.9

Upgraded the Message handler file for solving NullPointerException

4.2.8

Security patch updated

4.2.7

Security patch updated

4.2.6

  • Minor bug fix for log statement.

4.2.5

Introduces support for digitally signed, non-encrypted emails. The plugin now processes these emails just as it does regular emails, extracting attachments and creating documents in Appian. Currently, the functionality supports digitally signed emails with S/MIME signatures. Digital signatures are preserved but not verified, enabling consistent functionality with existing workflows.

4.2.4

Upgraded and applied security patch for Azure library

4.2.3

Upgraded nimbus-jose-jwt and all netty libraries

4.2.2

Upgraded jackson libraries

4.2.1

Upgraded reactor-netty,reactor-netty-core,reactor-netty-http

4.2.0

Updates to license file and to deprecated APIs. Updates to netty and jackson libraries. Fixed issue with smart service icon not populating.

4.1.1

Fixed email aliases. Aliases used by the sender in To and Cc fields are correctly recorded in the database To and Cc fields rather than the main/parent email address. [This behaviour regressed at v4.0.0 with the move to Jakarta mail]

4.0.8

Updated the jackson databind, jackson datatype, and jackson dataformat libraries

4.0.7

Updated guava library

4.0.6

Updated guava library

4.0.5

Updated Microsoft graph, jackson, json, json smart, accessors smart and netty libraries. Removed log4j and added reload4j libraries.

4.0.4

Updated woodstock and netty-transport libraries

4.0.3

Fixed a bug where some characters in the subject could cause an issue saving the message as an EML

4.0.2

Updated exception handling

  • fixed an issue with unreadable email (they will no longer generate duplicates)
  • addressed a potential race condition on the server with a retry request (only when the server returns a specific exception)

Security Updates

4.0.1

Security Updates

4.0.0

Updated to support the jakarta mail library introduced in Appian 22.3

3.2.1

Security Updates

3.2.0

Added an ability to override the default table names the smart service writes to. See the deployment instructions for how to use custom table names in lieu of the defaults.

3.1.1

Security Updates

3.1.0

Version 3.1.0 is a major upgrade and will break older smart services of the email poller. The MS Graph API changed in a way it is not backwards compatible. If you upgrade from a previous version you should

  • check and execute the upgrade script for mySQL (amend it for your database if needed)
  • Change the tenant (remove the https://login.micrsosftonline.com/ part)
  • replace the existing smart service with the new one and remap all input and output variables

2.4.2

  • Updated libraries to the correct version - please upgrade from version 2.4.1 to 2.4.2

2.4.1

Security Updates

2.3.2

Fixing issues with incompatible filenames and improved error handling. Adding the latest SQL Scripts for the underlying tables as well

2.3.1

  • Bug fix to handle error writing mail to database cleanly
  • Security updates

2.3.0

v2.3.0

  • Maintains original email aliases in to/cc/bcc fields instead of replacing with mailbox primary email
  • Stores additional field - immutable (within mailbox) Graph message id - in database

2.2.3

-updated version of jsoup library to prevent StackOverflorError when parsing densely nested HTML -updated database scripts - please note that if you're upgrading from pre 2.2.1, there are two new fields included in those scripts that must be added to your DB tables

2.2.2

Fixed a bug in parsing .json attachments. Note this pull request for full context:

https://github.com/appianps/ps-plugin-MSGraphMailPoller/pull/6

Also updating the DB script to include the new column.

2.2.1

Added new smart service with various new input parameters

  • Ability to toggle whether fileAttachments are included in generated EML file
  • Ability to toggle parsing of itemAttachments; Saves them as an Appian doc if set to true, previously these attachments were not included
  • Ability to toggle parsing of inlineImages; Detects any img tags with cid-based src's, replaces the src with the link to the Appian document

2.1.5

Updated the contentType param to allow for the retrieval of both plain text and html

2.1.4

Updating the MySQL / MariaDB script to use importance column as varchar(32) (instead of int(11))

2.1.4

Fixing a bug that prevented processing mails with attachment of 0 bytes; these attachments will be ignored in the process

2.1.3

2.1.3 - Now includes Item Attachments in the generated EML file (these were lost previously); File Attachments are still stored separately. 2.1.2 - Added MariaDB as a supported database to store email details 2.1.1 - Fixed a bug on database connections closing

2.1.2

2.1.2 - Added MariaDB as a supported database to store email details 2.1.1 - Fixed a bug on database connections closing

2.1.1

Fixing a bug on database connections closing

Resources

  • Deployment Instructions.pdf

    Documentation

    Download