I’m trying to send an email in java. Here’s the code:
String mailSmtpHost = "smtp.example.com";
String mailTo = "email@example.com";
String mailFrom = "email@example.com";
String mailSubject = "Email subject";
String mailText = "Some text";
Properties properties = new Properties();
properties.put("mail.smtp.host", mailSmtpHost);
Session emailSession = Session.getDefaultInstance(properties);
try {
Message emailMessage = new MimeMessage(emailSession);emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));emailMessage.setFrom(new InternetAddress(mailFrom));emailMessage.setSubject(mailSubject);emailMessage.setText(mailText);emailSession.setDebug(true);Transport.send(emailMessage);
}catch(Exception e) {
System.out.println("Errore email: "+e.toString());
}
When I compile the project, on line:
Message emailMessage = new MimeMessage(emailSession);
…the following error comes out:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataHandler
Note: I’m using java -version: 9.0.4
JDK 9 disables access to many of the javax.* APIs by default, javax activation is now deprecated.
However you can resolve it with adding the module at run time
--add-modules java.activation