Question

I am trying to upgrade to latest Java Mail utility.

From

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

to (my Intention)

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.5.1</version>
</dependency>

But I don't find 1.5.1 for mail artifact,

but I can see

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.1</version>
</dependency>

My Question is why group id changed and if I change the group id for 1.5.1 do I need to change all my mail implementation that is already present (package name change and any other stuff) and what is the difference between com.sun.mail vs javax.mail?

Was it helpful?

Solution

The Maven coordinates changed some time ago to be compatible with the scheme described here. The new coordinates are here.

In short:

  • The groupId javax.mail is no longer used for the implementation.
  • There is a new artifact at javax.mail:javax.mail-api. It provides the javax.mail-api.jar file. This contains the JavaMail API definitions only, suitable for compiling against.
  • com.sun.mail:javax.mail contains the javax.mail.jar file, the JavaMail reference implementation jar file, including the SMTP, IMAP, and POP3 protocol providers.

So, you should either use com.sun.mail:javax.mail for compilation and packaging/deploy, or use javax.mail:javax.mail-api for compilation and then deploy the com.sun.mail:javax.mail jar where appropriate (e.g., your Tomcat lib).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top