title: JavaMail - javax.mail.MessagingException
body: <p>I am trying to write a simple mail sender class that would receive a bunch of arguments and using those will send an email out using our Exchange 2010 server. While authentication etc. seem to work fine, I am getting the following exception when the code is actually trying to send the email (I think). I have ensured that the authentication is working and I get a transport back from the session, but still it fails. Could anyone shed some like on what I am doing wrong or missing? Thanks.</p>
  
  <p><strong>Exception:</strong></p>
  
  <pre><code>javax.mail.MessagingException: [EOF]
         at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1481)
         at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1512)
         at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
         at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
         at javax.mail.Transport.send0(Transport.java:189)
         at javax.mail.Transport.send(Transport.java:140)
         at com.ri.common.mail.util.MailSender.sendHTMLEmail(MailSender.java:75)
         at com.ri.common.mail.util.MailSender.main(MailSender.java:106)
  </code></pre>
  
  <p><strong>Relevant code:</strong></p>
  
  <pre><code>import java.util.Properties;
  
  import javax.mail.Authenticator;
  import javax.mail.Message;
  import javax.mail.MessagingException;
  import javax.mail.PasswordAuthentication;
  import javax.mail.Session;
  import javax.mail.Transport;
  import javax.mail.internet.InternetAddress;
  import javax.mail.internet.MimeMessage;
  
  
  public class MailSender
  {
      public static void sendHTMLEmail( String fromEmailId, String toEmailId, String host, String hostUserName,
              String hostPassword, String mailSubject, String mailBody )
      {
          // Get system properties.
          Properties props = System.getProperties();
          // Setup mail server
          props.put( "mail.transport.protocol", "smtp" );
          props.put( "mail.smtp.host", host );
          props.put( "mail.smtp.auth", "true" );
  
          final String hostUName = hostUserName;
          final String hPassword = hostPassword;
  
          Authenticator authenticator = new Authenticator()
          {
              protected PasswordAuthentication getPasswordAuthentication()
              {
                  return new PasswordAuthentication( hostUName, hPassword );
              }
          };
  
          // Get the default Session object.
          Session session = Session.getDefaultInstance( props, authenticator );
  
          try
          {
              // Create a default MimeMessage object.
              MimeMessage message = new MimeMessage( session );
  
              // Set From: header field of the header.
              message.setFrom( new InternetAddress( fromEmailId ) );
  
              // Set To: header field of the header.
              message.addRecipient( Message.RecipientType.TO, new InternetAddress( toEmailId ) );
  
              // Set Subject: header field
              message.setSubject( mailSubject );
  
              // Send the actual HTML message, as big as you like
              message.setContent( mailBody, "text/html" );
  
              // Send message
              Transport.send( message, message.getAllRecipients() );
              System.out.println( "Sent message successfully...." );
          }
          catch( Exception mex )
          {
              mex.printStackTrace();
          }
  
      }
  
      public static void main( String[] args )
      {
  
          String to = "someCorrectEmailID@xyz.com";
          String from = "someCorrectEmailID@xyz.com";
          String host = "correctHostForExch2010";
          String user = "correctUser";
          String password = "CorrectPassword";
          String subject = "Test Email";
          String body = "Hi there. This is a test email!";
  
          MailSender.sendHTMLEmail( from, to, host, user, password, subject, body );
      }
  }
  </code></pre>
  
  <p>EDIT:  I turned on debugging and it says</p>
  
  <pre><code>MAIL FROM:&lt;someCorrectEmailID@xyz.com&gt; 530 5.7.1 Client was not authenticated 
  DEBUG SMTP: got response code 530, with response: 530 5.7.1 Client was not authenticated. 
  </code></pre>
  
  <p>Why would that be when the session authentication succeded?</p>