title: Outlook Email Setup for JavaMail API
body: <p>I having headache in setting up the outlook mail to JavaMail, I had followed the instructions from <a href="https://blogs.oracle.com/apanicker/entry/java_code_for_smtp_server" rel="noreferrer">here</a> and <a href="http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/" rel="noreferrer">here</a></p>
  
  <pre><code>Properties props = new Properties();
            props.put("mail.smtp.user", d_email);
            props.put("mail.smtp.host", "smtp-mail.outlook.com");
            props.put("mail.smtp.port", "587");
            props.put("mail.smtp.starttls.enable","true");
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.socketFactory.port", "587");
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback", "true");
  
            try
            {
            Authenticator auth = new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(d_email, d_password);
                }
              };
  
            Session session = Session.getInstance(props, auth);
  
            MimeMessage msg = new MimeMessage(session);
            msg.setText("Hey, this is the testing email.");
            msg.setSubject("Testing");
            msg.setFrom(new InternetAddress(d_email));
            msg.addRecipient(Message.RecipientType.TO, new InternetAddress("example@gmail.com"));
            Transport.send(msg);
  
            }catch (MessagingException mex) {
               mex.printStackTrace();
            }
  </code></pre>
  
  <p>And I keep getting the errors:</p>
  
  <pre><code>javax.mail.MessagingException: Could not connect to SMTP host: smtp-mail.outlook.com, port: 587;
    nested exception is:
      javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
      at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
      at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
      at javax.mail.Service.connect(Service.java:317)
      at javax.mail.Service.connect(Service.java:176)
      at javax.mail.Service.connect(Service.java:125)
  </code></pre>
  
  <p>I had searching around google and stackoverflow, I guess it is a MUST to use SSL instead of TLS because outlook doesn't accept TLS or else the connection will be close by remote host, but the solutions I found from Internet didn't work out. What am I missed in order to send my testing mail successfully?</p>
  
  <p>I am total new to mail API, any advises or helps will be much appreciated. Thanks.</p>
  
  <p><strong>EDIT:</strong> I have a email account from microsoft I registered similar to 'xxxx@outlook.com'</p>