Note that "Java EE" is now called "Jakarta EE".
Eclipse MicroProfile (not part of Jakarta EE, but used in enterprise Java)
Using encryption: The JavaMail-Crypto API project is a bit dated, but it does purport to add S/MIME and OpenPGP support to JavaMail
Using DKIM: The DKIM for JavaMail project is a bit dated, but it does purport to add DKIM support to JavaMail
Third party extensions, e.g. local store implementations
James is an open source SMTP, POP3 and NNTP server written in Java by the good folks at Apache. Its Mailet API enables automatic processing of emails, kind of what servlets do for HTTP requests. Introductory article part 1, part 2
Aspirin is an embeddable Java SMTP server. While useful mostly for send-only situations, it has some provisions to receive mails as well (to handle bounces and such).
Q: I'm marking my mails as SEEN, but next time I access the INBOX, they're once again presented as unread. What gives?
From the FAQ : Just because a flag exists doesn't mean the flag is supported by all mail servers/providers. For instance, besides deleting messages, the POP protocol supports none of them. ... To find out what flags are supported, ask the folder with getPermanentFlags().
Q: I'm having trouble connecting to Gmail using JavaMail; something about "starttls". What gives?
This, too, is covered in the FAQ: How do I access Gmail with JavaMail?
Q: How can I access the SMTP response code?
The Transport object can be cast to JavaDoc:com.sun.mail.smtp.SMTPTransport which has the getLastServerResponse and getLastReturnCode methods available.
Java Message Service (JMS)
Java Naming and Directory Interface (JNDI)
How to go about ObtainingRemoteJndiContext ?
Some software for using LDAP:
Java Management Extension (JMX)
JmxExample - code for an application making MBeans available for monitoring