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:
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.
We have observed the emails moving to Delete folder post polling and is there a possible way to route the emails for any folder user have provided?
Hi, is there a possibility to limit types of attachments the plugin can work with? it seems that the mail poller ignores file upload settings from the admin console
BR, Aleksandrs Sirotinskis
Did you resolve it? I'm facing same issue. I want to move the emails to seperate folder.
Hello
After many problems I have managed to make the plugin work. I put the key points to make it work.1. The test connection button in the admin console always shows a connection error but it does not mean that the plugin does not work, you have to test it from a process model.2. The tenant id is not put in the format that comes in the documentation, only the tenant id must be put.3.The Azure administrator must give the application id read and write permissions on the mailbox to be read.4. The database scripts that come in the zip are not correct, they are missing fields, the script must be like that.5. the secret id must always be the secret value.
6. If you want to know more details about the errors, you should go to the appian logs and search in stdout.log
GOOD LUCK!!!
You just have to put the tenant id, nothing else
Make sure your application ID has full access to the inbox you try to connect to. Your Azure admin must set the permissions to Type: Application Permission: Mail.ReadWrite. The scope can then be reduced to the mailboxes you need to have access to from Appian. The error indicates that you are not allowed to access the deletedItem folder for the mailbox, which is the first check that is made within the plugin to validate access
just the tenant ID; please check the documentation that is included if you download the plugin files from the download link here.
What would be the correct format to indicate the tenant?
the domain name is: Aena, SME S.A.
and tenant :3ea6ba9c-a793-4c3xxxxxxxxxxxxxxxxxx
this is the config
and this is the error
2023-07-28 12:55:55 SEVERE [Appian Work Item - 18805 - WorkID 929 - execution01 - process 269002039 - model 32147 : UnattendedJavaActivityRequest] com.microsoft.graph.logger.DefaultLogger.logError CoreHttpProvider[sendRequestInternal] - 408Graph service exception 2023-07-28 12:55:55 SEVERE [Appian Work Item - 18805 - WorkID 929 - execution01 - process 269002039 - model 32147 : UnattendedJavaActivityRequest] com.microsoft.graph.logger.DefaultLogger.logError Throwable detail: com.microsoft.graph.http.GraphServiceException: Error code: ErrorAccessDenied Error message: Access is denied. Check credentials and try again. GET graph.microsoft.com/.../deleteditems SdkVersion : graph-java/v5.51.0 403 : Forbidden [...] [Some information was truncated for brevity, enable debug logging for more details] 2023-07-28 12:55:55,292 [Appian Work Item - 18805 - WorkID 929 - execution01 - process 269002039 - model 32147 : UnattendedJavaActivityRequest] ERROR com.appiancs.msgraphmail.MSGraphMailPollerSmartService - Unexpected error polling for mail com.microsoft.graph.http.GraphServiceException: Error code: ErrorAccessDenied Error message: Access is denied. Check credentials and try again. GET graph.microsoft.com/.../deleteditems SdkVersion : graph-java/v5.51.0 403 : Forbidden [...] [Some information was truncated for brevity, enable debug logging for more details] at com.microsoft.graph.http.GraphServiceException.createFromResponse(GraphServiceException.java:419) at com.microsoft.graph.http.GraphServiceException.createFromResponse(GraphServiceException.java:378) at com.microsoft.graph.http.CoreHttpProvider.handleErrorResponse(CoreHttpProvider.java:512) at com.microsoft.graph.http.CoreHttpProvider.processResponse(CoreHttpProvider.java:442) at com.microsoft.graph.http.CoreHttpProvider.sendRequestInternal(CoreHttpProvider.java:408) at com.microsoft.graph.http.CoreHttpProvider.send(CoreHttpProvider.java:225) at com.microsoft.graph.http.CoreHttpProvider.send(CoreHttpProvider.java:202) at com.microsoft.graph.http.BaseRequest.send(BaseRequest.java:335) at com.microsoft.graph.requests.MailFolderRequest.get(MailFolderRequest.java:70) at com.appiancs.msgraphmail.MSGraphMailPoller.getCustomFolderIds(MSGraphMailPoller.java:66) at com.appiancs.msgraphmail.MSGraphMailPoller.pollForMail(MSGraphMailPoller.java:44) at com.appiancs.msgraphmail.MSGraphMailPollerSmartService.run(MSGraphMailPollerSmartService.java:212) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:136) at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:54) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:136) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:130) at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:27) at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:130) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:88) at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:22) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:67) at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:55) at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:143) at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68) at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:129) at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36) at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:110) at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:241) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750)
The error suggests that you have not properly set up the credentials in the Third Party Credentials. Please follow the documentation available in the download version of the plugin to validate you third party credentials are properly configured in the Appian Admin Console