Mail issues with 7.1.1.x

Thanks, indeed, Michael. And does this mean that others like it (new query, new http, etc.) are or are not similarly impacted? Or is this indeed somehow unique only to mail?

To be clear, I’m writing from a phone so can’t easily test, and trycf only offers up to 7.0.1 rather than 7.1. It did at least allow me to confirm that using new mail, new query, and new http did work up to then.

Mail only, as far as we can tell. When mail moved into the extension in 7.1, the mail branch in core’s HelperBase.cfc was replaced with a hard “not supported in 7.1 OOTB” error, so new mail() fails even with the Mail extension installed. new query(), new http() and the other helper components weren’t part of that split, and their tests pass on 7.1.

Tracked in LDEV-6484, with a proposed fix in extension-mail#1 plus a small core PR (lucee/Lucee 2829). If you see another helper fail the same way, post the stack trace here and I’ll open a ticket.

Hi Jim, we’re working through a few regressions right now, the mail issues being the main ones. Once those are sorted we’ll do an RC, hopefully today if all goes well.

Thanks (to our new AI friend here, Gian).

1 Like

Hi Jim,

we created the 7.1.1 release candidate today:

It includes the queryExecute comments fix (LDEV-4867) and the mail fixes from this thread. We plan to do the final release as soon as possible, so any testing or review of the RC on your side is very welcome.

1 Like

Woo! :grinning: Let me go update my container, rebuild and test!

Quick tests - 7.1.1.15-RC / 1.1.0.10-RC (mail)

  • new mail() - working again!
  • Send test mail - working again!
  • QueryExecute & comments - working!

One interesting observation - we have a large suite of tests we have been running as we migrate from CF to Lucee. We’ve been running these since we started on 7.0.1.100. In our dev environment we do not have the mail spool enabled. The mail tests have always passed. With 7.1.1.x - we get timeout errors. If I enable the spool it works of course.

I’m not sure if something changed with moving mail to an extension??

Monday I will try with the 7.0.6.9-RC. I believe the last version we were testing with was 7.0.6.5 as that had the query/comments fix in it.

1 Like

Hi @Jim_Priest, thanks for testing the RC so quickly, and good to hear that new mail(), the admin “Send test mail” and the queryExecute comments fix all work on 7.1.1.15-RC.

About the timeouts with the spool disabled: we’re looking into it. Once we can reproduce it, we’ll file a ticket and link it here.

What we’ve found so far: with the spool off, the Mail extension sends the same way 7.0 core did. It sends synchronously, uses the mail server timeout from the admin (30 seconds by default) unless the tag has a timeout attribute, and gives up with “timeout occurred after N seconds while sending mail message”. We ran the same sends (mail {}, cfmail(), new mail().send(), one after another and in parallel) with the spool disabled on 7.1.1.15-RC, 7.0.6.9-RC and 7.0.6.5 against a local test SMTP server, and all three behaved the same. So something specific to your setup must be triggering it, and these details would help a lot:

  1. The exact error message and stack trace of one of the failing tests. Is it a mail error (“timeout occurred after … seconds”) or a request or test-runner timeout?
  2. The “Timeout” value on the admin Mail page (or mailConnectionTimeout in .CFConfig.json)
  3. How the mail server is set up: in the admin / .CFConfig.json, via this.mailservers in Application.cfc, or with server / port / useTLS / useSSL / timeout attributes on the mail calls. Also, which SMTP server do the tests talk to in dev (Mailpit, MailHog, a real relay, or none)?
  4. Whether 7.0.6.9-RC on Monday behaves like 7.0.6.5 (tests pass with the spool disabled)

Thanks again for running your suite against the RC!

This is in Docker - so a fresh build every time. The only thing I’m changing is the .lco version number in my Docker script and adding the mail extension to my CFConfig file.

We have approx a dozen tests which send email and they all fail with this error.

  1. Error / stack trace
mail.foo.local timeout occurred after 30 seconds while sending mail message:0

Failure StackTrace
lucee.runtime.exp.NativeException: mail.lindev.local timeout occurred after 30 seconds while sending mail message:0
	at org.lucee.extension.mail.smtp.SMTPClient._send(SMTPClient.java:965)
	at org.lucee.extension.mail.smtp.SMTPClient.send(SMTPClient.java:799)
	at org.lucee.extension.mail.tag.Mail.doEndTag(Mail.java:651)
	at org.lucee.cfml.mail_cfc$cf.udfCall(/org/lucee/cfml/Mail.cfc:25)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:230)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:863)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:716)
	at lucee.runtime.ComponentImpl.call(ComponentImpl.java:2299)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:773)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:2089)
	at supportticket_cfc$cf.udfCall3(/SupportTicket.cfc:333)
	at supportticket_cfc$cf.udfCall(/SupportTicket.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:864)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:716)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:2318)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at admin.tickets.common.send_emails_cfm$cf.call(/admin/tickets/common/send_emails.cfm:200)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1147)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1030)
	at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:1022)
	at lucee.runtime.tag.CFTag.doInclude(CFTag.java:333)
	at lucee.runtime.tag.CFTag.cfmlStartTag(CFTag.java:259)
	at lucee.runtime.tag.CFTag.doStartTag(CFTag.java:193)
	at admin.modules.cflib_cfm$cf.udfCall1(/admin/modules/cfLib.cfm:12)
	at admin.modules.cflib_cfm$cf.udfCall(/admin/modules/cfLib.cfm)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:829)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at supportticket_cfc$cf.udfCall1(/SupportTicket.cfc:132)
	at supportticket_cfc$cf.udfCall(/SupportTicket.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:864)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:716)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:2318)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at admin.objects.foo_cfc$cf.udfCall3(/admin/objects/foo.cfc:1602)
	at admin.objects.foo_cfc$cf.udfCall(/admin/objects/foo.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:864)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:716)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:2318)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at admin.objects.iprange_cfc$cf.udfCall1(/admin/objects/IPRange.cfc:249)
	at admin.objects.iprange_cfc$cf.udfCall(/admin/objects/IPRange.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:230)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:863)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:716)
	at lucee.runtime.ComponentImpl.call(ComponentImpl.java:2299)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:773)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:2089)
	at specs.iprange.iprangetest_cfc$cf.udfCall(/tests/specs/iprange/IPRangeTest.cfc:88)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:230)
	at lucee.runtime.type.EnvUDF.call(EnvUDF.java:119)
	at lucee.runtime.type.util.StructSupport.call(StructSupport.java:278)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:773)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:2089)
	at system.basespec_cfc$cf.udfCall8(/testbox/system/BaseSpec.cfc:1743)
	at system.basespec_cfc$cf.udfCall(/testbox/system/BaseSpec.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.type.util.StructSupport.callWithNamedValues(StructSupport.java:288)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at system.basespec_cfc$cf.udfCall6(/testbox/system/BaseSpec.cfc:1293)
	at system.basespec_cfc$cf.udfCall(/testbox/system/BaseSpec.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:230)
	at lucee.runtime.type.EnvUDF.call(EnvUDF.java:119)
	at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:811)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:773)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:2089)
	at system.basespec_cfc$cf.udfCall6(/testbox/system/BaseSpec.cfc:1260)
	at system.basespec_cfc$cf.udfCall(/testbox/system/BaseSpec.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:230)
	at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:811)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:773)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:2089)
	at system.basespec_cfc$cf.udfCall5(/testbox/system/BaseSpec.cfc:1035)
	at system.basespec_cfc$cf.udfCall(/testbox/system/BaseSpec.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:864)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:716)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:2318)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at system.runners.bddrunner_cfc$cf.udfCall(/testbox/system/runners/BDDRunner.cfc:324)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:829)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at system.runners.bddrunner_cfc$cf.udfCall(/testbox/system/runners/BDDRunner.cfc:110)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.call(UDFImpl.java:230)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:863)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:716)
	at lucee.runtime.ComponentImpl.call(ComponentImpl.java:2299)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:773)
	at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:2089)
	at system.testbox_cfc$cf.udfCall3(/testbox/system/TestBox.cfc:766)
	at system.testbox_cfc$cf.udfCall(/testbox/system/TestBox.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:829)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at system.testbox_cfc$cf.udfCall2(/testbox/system/TestBox.cfc:465)
	at system.testbox_cfc$cf.udfCall(/testbox/system/TestBox.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:829)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at system.testbox_cfc$cf.udfCall2(/testbox/system/TestBox.cfc:351)
	at system.testbox_cfc$cf.udfCall(/testbox/system/TestBox.cfc)
	at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:118)
	at lucee.runtime.type.UDFImpl._call(UDFImpl.java:370)
	at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:220)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:864)
	at lucee.runtime.ComponentImpl._call(ComponentImpl.java:716)
	at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:2318)
	at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:858)
	at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:2121)
	at system.runners.htmlrunner_cfm$cf.call(/testbox/system/runners/HTMLRunner.cfm:56)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1147)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1030)
	at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:1011)
	at tests.runners.runner_cfm$cf.call(/tests/runners/runner.cfm:13)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1147)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1030)
	at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:240)
	at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:43)
	at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2836)
	at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2823)
	at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2794)
	at lucee.runtime.engine.Request.exe(Request.java:45)
	at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1252)
	at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1209)
	at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:99)
	at lucee.loader.servlet.jakarta.CFMLServlet.service(CFMLServlet.java:41)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:654)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1778)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.lucee.extension.mail.MailException: mail.lindev.local timeout occurred after 30 seconds while sending mail message:0
	... 190 more
  1. Default timeout which I believe is 30 seconds

  2. For configuration - it’s a vanilla mail connection to Mailhog running in another container. Connection is done via CFConfig so doesn’t change between setups.

  "mailServers": [
    {
      "tls": "false",
      "password": "encrypted:password",
      "port": "1025",
      "username": "",
      "ssl": "false",
      "smtp": "mail.foo.local"
    }
  ],
  1. I rolled back to 7.0.6.9-RC, removed mail extension from my config, rebuilt my container - ran tests - no mail failures.

Thanks @Jim_Priest, the stack trace and the config really help!

I’m fairly sure this isn’t actually a timeout. With the spool off, the Mail extension sends in a separate thread. If that thread fails with a Java error instead of a normal exception, the error gets swallowed, and the only message you see is “timeout occurred after 30 seconds”. The 30 is just the configured timeout, not a measured time. We’ve filed a ticket for that: LDEV-6500

To find the real error, two things would help:

  1. Which mail extension entry is in your CFConfig (the id and version)? If that entry is older than the bundled 1.1.0.10-RC, it could replace the bundled one.
  2. Does mail.log or the console log (docker logs / catalina.out) show anything right before the timeout? The swallowed error usually goes to the console as Exception in thread "Thread-…". Also, do the failing sends take the full 30 seconds, or do they fail right away?

Hi @Jim_Priest, there’s a new Mail extension build to test: 1.1.0.11-SNAPSHOT

mail-extension-1.1.0.11-SNAPSHOT.lex

It includes the fix for LDEV-6500 (PR #7). If something goes wrong in the thread that sends the mail, you now get the real error, and it’s written to mail.log, instead of “timeout occurred after 30 seconds”.

To use it in Docker, copy the .lex into /opt/lucee/server/lucee-server/deploy/ in your image. If the mail extension entry in your CFConfig pins an older version, remove it or set it to 1.1.0.11-SNAPSHOT so it doesn’t override the new build.

Could you run your mail tests again with the spool disabled? They should either pass, or fail with the actual error. If they still fail, please post that error and the matching lines from mail.log.

Updated testing:

  • Lucee: 7.1.1.15-RC
  • Mail: 1.1.0.11-SNAPSHOT (manually installed)
  • Mail spool: disabled

Using 1.1.0.11-SNAPSHOT I get no timeouts and test time is back in parity with 7.0.6.9 - ~350,000ms. Nothing in mail.log :grinning:

Thanks a lot for testing, @Jim_Priest, that’s great news!

So with 1.1.0.11-SNAPSHOT and the spool off, the timeouts are gone, the test run is back to the same time as on 7.0.6.9, and mail.log stays empty. Besides surfacing the real error, that build also runs the sending thread with the Mail extension’s own classloader, which is most likely what fixed it for you.

I’ve added your results to LDEV-6500. The next step is a Mail extension release with this fix and a 7.1 build that bundles it. I’ll post here when that’s available.

1 Like