MailPro with Servoy 2025.09

Hey everyone,

is anyone using the MailPro plugin (from servoy-plugins.de) with the latest Servoy 2025.09 (Jakarta) release?

We tried updating our solution that relies on this plugin, but Servoy completely breaks — no plugins are loaded at all (only the SPM services appear).

It looks like the .jar file is still using javax, which is probably causing the issue.

Does anyone have any information about the current state or future of this project?
For example, is it available on GitHub or open source so that the community could fork and maintain it?

Thanks,
Vik

Is no one using MailPro in their projects?

This is currently a major blocker for us — we cannot move to the latest Servoy release without either completely rewriting our mail logic to use servoy.mail, or having a working update of the MailPro plugin.

If anyone has any information, updates, or insight on the status of the plugin, we would really appreciate it.

Thanks in advance!
Vik

I am looking into it. It’s a bit of a major operation, as java.mail has been replaced by jakarta.mail and the servlet API has also been replaced due to the new Tomcat. I have it running already, but a few issues remain.

2 Likes

Thanks Patrick, that’s really good to hear.
Do you have any plans or intentions to host the project on GitHub and make it public?

Hi Patrick,

do you have any rough estimate on when the update might be available?
We would like to start planning the Tomcat upgrade for our clients accordingly.

Thanks a lot in advance!
Vik

I’d be happy to have people test a new version.

Here is a build that works for me. The jar and the folder need to go into application_server/plugins. I could not yet test this in a deployment…

https://www.icloud.com/iclouddrive/05bBGGUE3kWSIjsYTewWHOVbQ#mailpro-4.1.0

Thanks a lot! We’ll give it a try and test it in our deployment environment.
I’ll keep you updated on how it goes.

Hi Patrick,

thanks a lot for the updated JARs. We did some testing with our updated workspace and Servoy version (now on the latest 2025.9.01) and wanted to share our results:

I removed all old mailpro references from my updated test Servoy installation (2025.9.1) and replaced them with the updated JARs you sent a few days ago. After switching the files, I started Servoy Developer and immediately ran into an error I had already seen a few weeks ago when I tried updating the plugin myself using the official Tomcat Java EE –> Jakarta converter.

The issue was that Servoy Developer didn’t recognize any methods inside the SMTPAccount() class. I had the exact same problem before and remembered how I fixed it. Back then, when inspecting and updating the plugin files, I noticed a javax.mail.old file, which probably caused the problem since we’re on Jakarta now. I removed that file and replaced it with the official jakarta-mail.jar from Maven. After that, Servoy recognized the methods again.

So I tried the same approach again — but this time I had to replace your jakarta-mail-api.jar. I’m not entirely sure what the difference between these two JARs is, but swapping in the jakarta-mail.jar fixed the issue in my current Servoy setup.

Once Servoy’s plugin handler was reading the plugin correctly again, I tested sending and receiving emails via SMTP, IMAP, and OAuth both in Servoy Developer and on a test machine running Tomcat 11. To keep it short, here are the results:

Tests in Servoy Developer (local) :

  • Sending mails via SMTP worked fine.

  • Using SMTPAccount() or IMAPAccount().connect() didn’t work because of “invalid credentials”. I’m pretty sure the credentials were correct, but we’ll test again next week with different accounts.

  • Sending/receiving via IMAP/SMTP couldn’t be tested further because the connect method failed (we use it to validate account connections), so I didn’t want to rush deeper tests.

Tests on Tomcat 11 (external server) :

  • Receiving emails via OAuth worked fine.

  • Sending emails via OAuth isn’t implemented in our solutions yet. We’ll test that next year, but it worked in older MailPro + Servoy versions, so I’m not expecting issues.

  • The bad news: IMAP/SMTP didn’t work on the test server. I always got an exception saying “cannot call SMTPAccount() / IMAPAccount() from undefined”, which seems like the same issue I had before replacing jakarta-mail-api.jar with jakarta-mail.jar. I also noticed that jakarta-mail-api.jar was present again in the webapp’s plugin folder, but removing it and restarting Tomcat didn’t help. We’ll look into it next week — maybe it’s a deployment issue on our side.

We’ll dig deeper into our deployment settings and test accounts next week, and I’ll keep you updated. I think we can fix most parts by ourselves, the only thing that still confuses me is this whole jakarta-mail-api issue. I don’t have much experience with these JARs, so I can’t really tell why the API version breaks things, but replacing it with jakarta-mail.jar at least makes the plugin usable inside Servoy Developer again.

Thanks again for your effort!

Thank you for your extensive explanation - and you are right, I missed the issues in SMTP and POP3 Account, I only checked IMAP. Apache has created a bit of a mess in my eyes with this. Anyway, it seems that not only the api jars are needed at least in developer, but also the implementation. I have updated the package now here

https://www.icloud.com/iclouddrive/0f0Ri8XUVfo2-V-ngUek-TiVw#mailpro-4.1.0

That now contains the two missing jars and worked fine for me (IMAP and SMTP) in developer.

I recommend you try that on a clean install of Servoy Developer to avoid collision with possibly old jars dangling in some directory and causing issues.

The error in developer indicates that the plugin fails to load (and therefore resolves to “undefined”). Also, here, a clean Servoy would save us from banging our head over collisions with old libs.

Hi Patrick,

thank your for your response. We wanted to continue our tests today anyways, so the timing for the new version is just perfect. We’ll use both our regular and a clean install of Servoy to see how the plugin behaves in both situations.

I’ll keep you updated :slight_smile:

Hi again,

we did some testing with the new version. Things are looking good in Developer, but our test server is still having trouble loading the plugin.

As mentioned earlier, we tried it with a clean installation of Servoy 2025.9.1 as well as with our current Servoy setup, which we also updated to 2025.9.1 including all required plugins. But for some reason the plugin just isn’t being deployed correctly, even on the clean Servoy install.

We always get the same exception: “cannot load method from undefined”, which points to a failed plugin deployment. It doesn’t matter if it’s SMTPAccount(), IMAPAccount(), or any other class/method — we always end up with the same exception.

Our code at that point is extremely simple: we just initialize a variable with plugins.MailPro.<Class> or plugins.MailPro.<Method>. That line alone is enough to trigger the exception.

In Servoy Developer everything works perfectly, no issues at all. Only the test server is affected, no matter which Servoy instance we use. Maybe you have an idea where this could be coming from?

Some info about our test server:

  • Intel Xeon, 8GB RAM

  • Windows Server 2019

  • Tomcat 11.0.15

  • Amazon Corretto JDK 21

Don’t think it’s related to the processor ;-)… Do you have a log maybe for me? servoy_log or tomcat/logs/localhost_yyyyMMdd.log?

I know the CPU isn’t the issue here, I just wanted to provide the full context :stuck_out_tongue:

The log doesn’t show much at this point, basically nothing beyond the exception we’re already seeing. I can’t upload .txt files in this thread, so I added a screenshot instead. The exception happens in line 14 of the log.

You can also check the full log here:
https://hv-office.de/log/servoy_log.txt

Just to clarify: The function that triggers the exception is supposed to verify the SMTP credentials that the user entered in a form. It does that by trying to send a test email to the user-specified address. The exact line that throws the exception is:

var loSMTP = plugins.MailPro.SMTPAccount()

The MailPro plugin isn’t accessed anywhere else before this error happens. To me it looks like the plugin isn’t fully deployed on the server, or at least not recognized correctly. Maybe another plugin is interfering with one of the JARs that MailPro depends on?

Here’s a full list of deployed plugins:
https://hv-office.de/log/plugins-tree.txt

My first thought was that the other activation.jar (from the VelocityReports plugin) might be interfering with the Jakarta Activation library that MailPro ships with. But we updated VelocityReports to the latest Jakarta-based version, so that shouldn’t be an issue anymore. Removing VelocityReports also didn’t change anything.

I also noticed some minor version differences in the Jakarta JARs that come with the new MailPro version. I’m not sure which other plugins might be shipping their own versions of these libraries, but even after replacing them with the original MailPro versions, the problem still persists.

So yeah… getting a bit confused at this point :joy:

Hi Patrick,

just wanted to follow up on this thread.

We tested the version you provided and dug a bit deeper into the issue (see my colleague’s message above from last week). Unfortunately, we’re still not getting to a satisfactory result so far.

Since the year is coming to an end, I wanted to ask whether we can still expect some feedback or guidance from your side this year, or if this will likely move into next year for you. This would help us a lot with our internal planning.

Additionally, have you had any thoughts about possibly making the MailPro source code available (e.g. on GitHub), so that affected users could fork or contribute fixes themselves if needed? Just wanted to ask, as this could be an alternative path for us.

Thanks again for your support and for looking into this, much appreciated.

Best regards,
Vik

Hi Patrick,

hope you had a great start into the new year!

I just wanted to follow up once more regarding the MailPro plugin and its compatibility with the Jakarta-based Servoy versions. Unfortunately, we are still running into issues with the current workaround and haven’t been able to achieve a stable solution so far.

Because of this, we are currently stuck on Servoy 2025.6 and cannot proceed with updating to newer versions. In the meantime, our customers are starting to put some pressure on us, as the missing update is blocking their upgrade plans.

Any kind of update, guidance, or even a rough timeline from your side would really help us with our internal planning and customer communication.

Thanks again for your support and for looking into this.

Best regards

1 Like

With the help of Johan’s still excellent eye sight I found the issue. Please try again with this version

https://www.icloud.com/iclouddrive/02ayF0CufKpztD3XyaQBcb4hw#mailpro-4.1.0

Thanks Patrick.
Jan is currently looking into it. We’ll report back as soon as we’ve completed the deployment tests.

Hi Patrick,

thanks for the new version. I tested it again both with a clean Servoy installation and with the version we’re currently using in production (including all our plugins, etc.), and it now seems to be working in both cases. I also updated both setups to the latest Servoy version (2025.12.0).

FYI: I initially ran into some issues because of the default mail plugin. It looks like the mail plugin uses Angus instead of Jakarta for its activation and mail JARs, while MailPro uses Jakarta. These JARs seem to interfere with each other, which caused an Internal Server Error in the Electron Client when initializing variables that reference classes like SMTPAccount() or IMAPAccount().

Removing the Angus JARs fixed the problem. However, since we still had some legacy code using plugins.mail in parts of our backend, we were always exporting mail.jar as well. We used this issue as a chance to clean up that code so it no longer relies on plugins.mail in specific parts, so we no longer need to export mail.jar at all.

So for now, everything looks good again. Thank you very, very much to you, Johan, and everyone else involved for all the effort! Since this (at least for us) major issue is now resolved, we can finally roll out the updated Servoy and Tomcat versions to our customers. PMO had already started to kick our asses at this point, so we can finally calm them down :joy:

3 Likes

That sounds strange to me for a number of reasons

  1. when I tested it I created a war from 2025.09 and did not remove anything and MailPro worked fine
  2. My understanding is: MailPro does require angus, but also some extra jakarta implementations, because not everything from javax.mail made it into angus. So I am really surprised that MailPro works at all without angus

What errors did you get when you just exported everything without excluding Servoy’s mail.jar? And: are you sure the war file did not include angus then?

Here’s some more detailed information on how I tested the new MailPro version:

I currently have two Servoy test setups. One is a copy of our production system (including all other plugins like VelocityReports, etc.), and the other one is a completely clean Servoy installation. I updated both to the latest stable Servoy release (2025.12.0) a few hours ago.

I started with the copied production setup. I removed all old MailPro JARs and replaced them with the new ones. Then I exported a WAR file with all plugins included (including the default mail plugin) and deployed it to Tomcat on our test server. Everything looked fine until I tried to check the SMTP connection. Unfortunately, I don’t remember the exact exception anymore because I already cleared the log for this test, sorry about that. What I do remember is that it said something like “cannot initialize NULL”, and it happened at the exact same line of code as last year:

var smtp = plugins.MailPro.SMTPAccount()

At that point, the Electron Client went into an “Internal Server Error” state.

After that, I tested the same steps with the clean Servoy installation, as you had recommended earlier. The process was identical up until the SMTP connection test. This time, I got a different exception at the same line of code:

org.mozilla.javascript.WrappedException: Wrapped java.lang.ClassCastException:
class org.eclipse.angus.mail.smtp.SMTPTransport cannot be cast to class com.sun.mail.smtp.SMTPTransport
(org.eclipse.angus.mail.smtp.SMTPTransport and com.sun.mail.smtp.SMTPTransport are in unnamed module
of loader org.apache.catalina.loader.ParallelWebappClassLoader @71e693fa)
(HVO2go/forms/settings_tpuser_benutzerverwaltung_user_email_setup/onCheckConnectionClicked#82)

This time there was no Internal Server Error in the client. After looking at the exception, it became clear that Angus was interfering with Jakarta, so I checked the “lib” folder of the deployed webapp for deployed JAR files. There I found angus-activation.jar and angus-mail.jar, which should come from Servoy’s default mail plugin. I removed those JARs and tested again, and everything worked.

To be sure the default mail plugin was the cause, I exported another WAR file, this time without mail.jar. With that setup, everything worked as well and no angus JAR files were found in the “lib” folder of my webapp. I also tested again with our production setup (which previously had the Internal Server Error issue) and excluded mail.jar from the export, this time everything worked fine.

So in conclusion: I can’t say for sure how MailPro might rely on Angus internally, but removing Angus (either manually from the “lib”folder or by excluding mail.jar during WAR export) fixed the issue for us. While trying to manually update the plugin a few months ago, I did some research and, if I remember correctly, read that you have to choose between Angus and Jakarta, and that mixing both can cause issues. Since I am completely unexperenced in the whole java mail topic, I can’t really tell if this is true or not.

The only remaining question for me is: if MailPro really depends on Angus, why does it only ship Jakarta JARs for mail and activation? If am I seeing things wrong here?

If you need more details or have any other questions, just let me know. I’ll try to provide as much information as I can​:slightly_smiling_face: