title: Javamail / email commons: empty message gives strange error
body: <p>I'm trying to send an email message via GMail (Google Apps, actually). This works perfectly for normal messages, but of course I have to test the extremes.</p>
  
  <p>Right now I'm trying to send a message without a body and I'm getting a strange error message. As I want to eliminate errors in my code, I'd like to know whether I'm doing something wrong or that there is an error in the libraries I'm using.</p>
  
  <pre><code>HtmlEmail currentMessage = new HtmlEmail();
  currentMessage.setSSL(true);
  currentMessage.setSslSmtpPort(465);
  currentMessage.setHostName("smtp.gmail.com");
  currentMessage.setAuthentication("abc@gmail.com", "secret");
  
  /** rs is a ResultSet from database **/
  
  if(rs.getString("mailFrom") != null &amp;&amp; !rs.getString("mailFrom").isEmpty())
      currentMessage.setFrom(rs.getString("mailFrom"));
  else
      currentMessage.setFrom("abc@gmail.com");
  currentMessage.setTo(this.convertRecipientStringToArray(rs.getString("mailTo")));
  currentMessage.setCc(this.convertRecipientStringToArray(rs.getString("mailCC")));
  currentMessage.setBcc(this.convertRecipientStringToArray(rs.getString("mailBC")));
  currentMessage.setSubject(rs.getString("mailSubject"));
  if(rs.getString("mailBody") != null &amp;&amp; !rs.getString("mailBody").isEmpty())
      currentMessage.setTextMsg(rs.getString("mailBody"));
  if(rs.getString("mailHtmlBody") != null &amp;&amp; !rs.getString("mailHtmlBody").isEmpty())
      currentMessage.setHtmlMsg(rs.getString("mailHtmlBody"));
  if(rs.getString("mailReplyTo") != null &amp;&amp; !rs.getString("mailReplyTo").isEmpty())
      currentMessage.addReplyTo(rs.getString("mailReplyTo"));
  else
      currentMessage.addReplyTo("def@gmail.com");
  currentMessage.send();
  </code></pre>
  
  <p>This code works for "normal" emails: with a valid body, subject, addressees etc.</p>
  
  <p>When both <em>mailBody</em> <strong>and</strong> <em>mailHtmlBody</em> are <em>NULL</em> or empty in the databse, I get the following error:</p>
  
  <blockquote>
    <p>Sending the email to the following server failed : smtp.gmail.com:25</p>
  </blockquote>
  
  <p>Full error log (own log format) / stacktrace:</p>
  
  <pre><code>[CRITICAL] 2012-12-19 17:08:00 [CET] - Exception occurred in function com.mypackage.mymailobject.outgoing_sendMails: Sending the email to the following server failed : smtp.gmail.com:25
  
  Stack trace:
  org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:25
      at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
      at org.apache.commons.mail.Email.send(Email.java:1267)
      at com.mypackage.mymailobject.outgoing_sendMails(mymailobject.java:85)
      at com.mypackage.mymailobject.outgoing_do(mymailobject.java:69)
      at com.mypackage.Mailer.main(Mailer.java:132)
  Caused by: javax.mail.MessagingException: IOException while sending message;
    nested exception is:
      java.io.IOException: javax.mail.MessagingException: Empty multipart: multipart/mixed; 
      boundary="----=_Part_0_916488860.1355933279096"
      at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1141)
      at javax.mail.Transport.send0(Transport.java:195)
      at javax.mail.Transport.send(Transport.java:124)
      at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)
      ... 4 more
  Caused by: java.io.IOException: javax.mail.MessagingException: Empty multipart: multipart/mixed; 
      boundary="----=_Part_0_916488860.1355933279096"
      at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:105)
      at javax.activation.ObjectDataContentHandler.writeTo(Unknown Source)
      at javax.activation.DataHandler.writeTo(Unknown Source)
      at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1476)
      at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1772)
      at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1099)
      ... 7 more
  </code></pre>
  
  <p>I now have 2 questions:</p>
  
  <ol>
  <li>Should it be possible to send an email without a body? Is that allowed?</li>
  <li>Why has the error message port number 25 instead of 465?</li>
  </ol>