title: Sending email with attachment through GMailSender?
body: <p>I have been reading the blogs and have tried numerous implementations but have still failed to get an image attached to an email that I'm sending through GMail using java.  I downloaded all the jars and added GMailSender.java, GMailAuthenticator.java, and JSSEProvider.java and I'm able to send regular e-mails just fine.  The way I've tried doing it is shown below, with the middle part that's commented out being the part I had hoped would add the image.  Below that is the output on the logcat when I try to execute this.  Surely I am missing something pretty simple.  Could someone point it out to me please?  Thanks in advance.</p>
  
  <pre><code>    public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {  
          try {  
              Thread.currentThread().setContextClassLoader(getClass().getClassLoader());  
          MimeMessage message = new MimeMessage(session);  
          DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));  
          message.setSender(new InternetAddress(sender));  
          message.setSubject(subject);  
          message.setDataHandler(handler);  
  
          /*  
          // Create your new message part  
          BodyPart imgPart = new MimeBodyPart();  
  
          // Create a related multi-part to combine the parts  
          MimeMultipart multipart = new MimeMultipart("related");  
          multipart.addBodyPart(imgPart);
  
          String fileName = "http://.../sampleBarcode.png";  
  
          ClassLoader classLoader = Thread.currentThread().getContextClassLoader();  
          if (classLoader == null) {  
                  classLoader = this.getClass().getClassLoader();  
              if (classLoader == null) {  
                  System.out.println("IT IS NULL AGAIN!!!!");  
              }  
          }  
  
          DataSource ds = new URLDataSource(classLoader.getResource(fileName));  
          imgPart.setDataHandler(new DataHandler(ds));  
          imgPart.setHeader("Content-ID", "&lt;logoimg_cid&gt;");  
  
          multipart.addBodyPart(imgPart);  
  
          message.setContent(multipart);  
          */  
  
          if(recipients.indexOf(',') &gt; 0) {  
                  message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));  
          }  
          else message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));  
  
          Transport.send(message);  
          }  
          catch(Exception e){Log.e("EMAIL_ERROR",e.getMessage(), e);}  
      }   
  
  null  
  java.lang.NullPointerException  
      at javax.activation.URLDataSource.getContentType(URLDataSource.java:91)  
      at javax.activation.DataHandler.getContentType(DataHandler.java:218)  
      ...  
      ...  
      (plus some more)  
  </code></pre>