Hi.
The Java version of the site I manage has changed, causing a problem with
the HtmlEmail service using commons-email.
- Environment Before Change
- jdk1.7
- spring 4.0.9
- commons-email 1.3.2
- Environment After Change
- java17
- spring 4.3.20
I used java17 so I downloaded commons-email2.
When I created and ran a simple application Java file on my local PC, I got
an error.
How do I solve this problem?
Is there any more libraries I need?
Is there a dependency issue between libraries?
I want to know how to reliably send out HtmlEmail from Java17.
Below is the classpath, source code, and error message.
- local test smtp server : MailHog_windows_386.exe
- SET CLASSPATH =
%CLASSPATH%;C:\lib\commons-email2-core-2.0.0-M1.jar;C:\lib\commons-email2-jakarta-2.0.0-M1.jar;C:\lib\commons-email2-javax-2.0.0-M1.jar;C:\lib\jakarta.mail-api-2.0.1.jar;C:\lib\jakarta.mail-activation-api-2.0.1.jar;.;
[HtmlEmail.java] =================================
import org.apache.commons.mail2.core.*;
import org.apache.commons.mail2.jakarta.*;
import jakarta.mail.*;
import java.io.*;
public class HtmlEmailTest {
public static void main(String args[]) {
sendMail();
}
public static void sendMail() {
try {
HtmlEmail email = new HtmlEmail();
email.setHostName("localhost");
email.setSmtpPort(1025);
email.addTo("[email protected]","toName");
email.setFrom("[email protected]",fromName");
email.setSubject("mail send test");
email.setHtmlMsg("<html>test to send
EmailContents<br>content<br></html>");
email.setTextMsg("support HTML messages");
email.send();
} catch (Exception e) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
System.out.println(sw.toString());
}
}
}
[error msg] =================================
Exception in thread "main" java.lang.NoClassDefFoundError :
com.sun.mail.util.PropUtil
at jakarta.mail.internet.InternetAddress.<clinit>(InternetAddress.java:62)
at
org.apache.commons.mail2.jakarta.Email.createInternetAddress(Email.java:633)
at org.apache.commons.mail2.jakarta.Email.addTo(Email.java:491)
at org.apache.commons.mail2.jakarta.Email.addTo(Email.java:477)
at HtmlEmailTest.sendMail(HtmlEmailTest.java:35)