while sending a mail with pdf attachment in amazon server using javamail API, Its throwing null pointer exception in the logs. But same code is working in local.
public void sendMail(final String mailTo, final String mailSubject, final String mailText, final String filePath, final String fileName) {
logger.info("Inside sendMail Method...");
final Properties config = createConfiguration();
// Creates a mail session. We need to supply username and password for Gmail authentication.
final Session session = Session.getInstance(config, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mailFrom, mailPassword);
}
});
// Creates email message
final MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(mailFrom));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));
message.setSubject(mailSubject);
final BodyPart messagePart = new MimeBodyPart();
messagePart.setContent(mailText, contentType);
final MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(messagePart);
if (filePath != null) {
final MimeBodyPart attachmentPart = new MimeBodyPart();
final URL url;
try {
url = new URL(filePath);
final DataSource source = new URLDataSource(url);
attachmentPart.setDataHandler(new DataHandler(source));
attachmentPart.setFileName(fileName);
multipart.addBodyPart(attachmentPart);
} catch (MalformedURLException e) {
logger.error("Malformed URL Exception: " + e.getMessage());
}
}
message.setContent(multipart);
// Send a message
Transport.send(message);
logger.info("Mail triggered successfully");
} catch (final AddressException e) {
logger.error("Address Exception: " + e.getMessage());
} catch (final MessagingException e) {
logger.error("Messaging Exception: " + e.getMessage());
}
}
Please find below the exception generated on amozon server application log.
2014-03-20 19:01:30,936 [DefaultQuartzScheduler_Worker-2] INFO net.app.api.jobs.MailJob - Error in triggering the mail : null
java.lang.NullPointerException
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:226)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:299)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1375)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1354)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2107)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2075)
at javax.mail.Transport.send(Transport.java:123)
at net.app.api.mail.MailTrigger.sendMail(MailTrigger.java:104)
at net.app.api.jobs.MailJob.execute(MailJob.java:41)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
Anybody please provide some feasible solution to this. Thanks in advance.