title: Null Pointer Exception while sending mail with attachment through JavaMail API on amazon server in Java Application
body: <p>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.</p>
  
  <pre><code>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());
      }
  }
  </code></pre>
  
  <p>Please find below the exception generated on amozon server application log.</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>Anybody please provide some feasible solution to this. Thanks in advance.</p>