I am trying to create a custom smart service to read emails and its attachments from POP3 server. As part of that, I am using mailapi.jar and pop3.jar. When the smart service gets invoked in a Process model, I am getting the below error. The same code is working fine in eclipse. Code identical between the smart service and the unit testing code in Eclipse (except Appian specific API calls). Any help is appreciated
Code that I use:
Map<String, String> credentials = CredentialStore.getCredentials(this.scsKey, this.scs);
Properties properties = new Properties();
String pop3Host = (String) credentials.get(EmailConstants.MAIL_SERVER);
String userName = (String) credentials.get(EmailConstants.USERNAME);
String password = (String) credentials.get(EmailConstants.PASSWORD);
Session emailSession = Session.getDefaultInstance(properties);
Store store = emailSession.getStore("pop3");
System.out.println("Step0");
store.connect(pop3Host, userName, password);
System.out.println("Step1");
Exception:
javax.mail.NoSuchProviderException: pop3
at javax.mail.Session.getService(Session.java:806)
at javax.mail.Session.getStore(Session.java:586)
at javax.mail.Session.getStore(Session.java:548)
at javax.mail.Session.getStore(Session.java:527)
at com.botw.wmg.plugins.smartServices.FetchEmails.run(FetchEmails.java:77)
at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:131)
at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:52)
at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:131)
at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:125)
at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:25)
at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:125)
at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:83)
at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:55)
at com.appiancorp.process.engine.ContinuationRequest.executeOuter(ContinuationRequest.java:71)
at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:100)
at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:35)
at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:84)
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:748)
2020-07-09 22:43:35,599 [Appian Work Item - 2357 - execution00 : UnattendedJavaActivityRequest] ERROR com.appiancorp.process.engine.UnattendedJavaActivityRequest - An error occurred while executing activity: id=72034, classname=com.botw.wmg.plugins.smartServices.FetchEmails
com.appiancorp.suiteapi.process.exceptions.SmartServiceException: java.lang.Exception: pop3
at com.appiancorp.suiteapi.process.exceptions.SmartServiceException$Builder.build(SmartServiceException.java:145)
at com.botw.wmg.plugins.utils.ExceptionHandler.createException(ExceptionHandler.java:8)
at com.botw.wmg.plugins.smartServices.FetchEmails.run(FetchEmails.java:128)
Caused by: java.lang.Exception: pop3
Discussion posts and replies are publicly visible
Mike Cichy, please help.
To answer about this specific issue, I believe "pop3" needs to be "POP3".
That said, the email poller plugin reads either through IMAP or POP3, so why build a new smart service?
I will try with POP3.
Are you talking abt https://community.appian.com/b/appmarket/posts/mail-poller? If so, we dont want to store the email content and details in DB, we just want it for processing purposes. Can we use that poller without the mysql DB as well?