Create & Read Email Files Utilities

Use Case Details

This Plug-in contains Functions and Smart Services that allow users to create and read email files containing all e-mail attributes, i.e. to, cc, bcc, from, subject, body, content type, and attachments. The generated file can be read by any email client that supports EML files, such as Outlook Express and Windows Live Mail. The Plug-in and a help guide are provided with this listing.

This version is for Appian 22.3 and above. Cloud customers on a lower version of Appian that want to install this plugin should open a support case. Self-managed customers can find the latest jar for Appian 22.2 and lower version by downloading from the app market.

Features & Functionality

Smart Services:

  • Creating EML File: Create Eml File
  • Reading EML File: Read Eml File

Features:

  • Creates Email files/documents that can be read on all email clients supporting eml files.
  • Reads all email files to extract all email-related attributes such as to, cc, bcc, subject, body, attachments, content type.
Anonymous
  • v2.0.1 Release Notes
    • Fixes encoding of text/plain and text/html content types to render special characters properly using UTF-8 encoding.
    • Fixes an issue that could be encountered when parsing multipart/mixed content.
  • Hi Arpit.

    Does the log have more details about the error?

    The error that you sent before (CreateEmlFileOOTB.setMaxSubjectLength) could be may be because you don't have any value for 'Max Subject Lengh' or the subject length of your eml file is grater than this value?

    Another topic, it´s not mandatory, but you have to set the node attribute 'Avoid Txt Alternative' true or false.

    Check it and tell.

    BR.


  • Also, it appears that input nodes that are not mandatory if no value is passed then throw the error. For instance, Max Subject Length:

    Caused by: java.lang.NullPointerException
    	at com.appcino.plugin.emlutility.smartservice.CreateEmlFileOOTB.setMaxSubjectLength(CreateEmlFileOOTB.java:143)


  • Thank you for your time and response.

    Yes, after realizing that I replaced it with a new node available named 'Create Eml File from OOTB Poller'
    Then it throws the following error:

    An error occurred while executing activity: id=537021359, classname=com.appcino.plugin.emlutility.smartservice.CreateEmlFileOOTB com.appiancorp.suiteapi.process.exceptions.SmartServiceException: An error occurred while creating the note.

    Please check my reply to another comment.
    And please help if you can.

  • Hi Arpit.

    I think you have the value "multipart/mixed; " setted in your node input variable 'Content Type'.

    I saw the following in javax doc:

    So I think you should try to execute the node with "" value in your node input variable 'Content Type'. 

  • Also, when I replaced with a new node available named 'Create Eml File from OOTB Poller'
    Then it throws the following error:

    An error occurred while executing activity: id=537021359, classname=com.appcino.plugin.emlutility.smartservice.CreateEmlFileOOTB
    com.appiancorp.suiteapi.process.exceptions.SmartServiceException: An error occurred while creating the note.
    	at com.appcino.plugin.emlutility.smartservice.CreateEmlFileOOTB.run(CreateEmlFileOOTB.java:62)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:136)
    	at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:52)
    	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:21)
    	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:239)
    	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)
  • Hi,

    After having upgraded Appian to the 22.3 version; I upgraded this plug-in to the 2.0.0 version.
    And found that 'Create Eml File' smart service does not work and throws the following error:
    jakarta.mail.MessagingException: MIME part of type "multipart/mixed; " contains object of type java.lang.String instead of MimeMultipar

    Please assist.
    Thank you!



  • Hi Michael,

    Thanks for upgrading the plug-in to the Jakarta library.

    After the Appian version upgraded to 22.3; I upgraded this plug-in to the 2.0.0 version.
    And 'Create Email File' service does not work and throws the following error: jakarta.mail.MessagingException: MIME part of type "multipart/mixed; " contains object of type java.lang.String instead of MimeMultipart

    Please assist.


    Here is detailed logs:

    UnattendedJavaActivityRequest] ERROR com.appiancorp.process.engine.UnattendedJavaActivityRequest - An error occurred while executing activity: id=268552939, classname=com.appcino.plugin.emlutility.smartservice.CreateEmlFile
    java.lang.RuntimeException: jakarta.mail.MessagingException: MIME part of type "multipart/mixed; " contains object of type java.lang.String instead of MimeMultipart
    	at com.appcino.plugin.emlutility.utils.EmlUtils.createEmlDocument(EmlUtils.java:147)
    	at com.appcino.plugin.emlutility.smartservice.CreateEmlFile.run(CreateEmlFile.java:48)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:136)
    	at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:52)
    	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:21)
    	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:239)
    	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)
    Caused by: jakarta.mail.MessagingException: MIME part of type "multipart/mixed; " contains object of type java.lang.String instead of MimeMultipart
    	at jakarta.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1513)
    	at jakarta.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2246)
    	at jakarta.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2206)
    	at jakarta.mail.internet.MimeMessage.writeTo(MimeMessage.java:1885)
    	at jakarta.mail.internet.MimeMessage.writeTo(MimeMessage.java:1862)
    	at com.appcino.plugin.emlutility.utils.EmlUtils.createEmlDocument(EmlUtils.java:118)
  • Hi, 

    when I use this plugin in mails that includes accent marks, the body doesn't show well:

    In the last version (before 22.3), this didn't happen. Anyone with the same bug?

  • We updated our process model to use the new smart service node and are now receiving this error:

    2022-09-23 16:32:36,553 [Appian Work Item - 1181640 - WorkID 125 - execution00 - process 783854 - model 25353 : UnattendedJavaActivityRequest] ERROR com.appiancorp.process.engine.UnattendedJavaActivityRequest - An error occurred while executing activity: id=118366, classname=com.appcino.plugin.emlutility.smartservice.CreateEmlFileOOTB
    java.lang.reflect.InvocationTargetException
    	at sun.reflect.GeneratedMethodAccessor14756.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.createInstance(DefaultActivityExecutor.java:250)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.createActivityInstance(DefaultActivityExecutor.java:211)
    	at com.appiancorp.process.runtime.framework.DefaultUnattendedActivityExecutor.validate(DefaultUnattendedActivityExecutor.java:18)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:84)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:21)
    	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:239)
    	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)
    Caused by: java.lang.NullPointerException
    	at com.appcino.plugin.emlutility.smartservice.CreateEmlFileOOTB.setAvoidTxtAlternative(CreateEmlFileOOTB.java:168)
    	... 19 more