title: JavaMail API and SMTPserver
body: <p>I am trying to send email using the javamail api and it looks like I have to install a SMTP server to get it working.I enabled the default SMTP server on IIS 6 on windows 8. I followed all the steps mentioned in the following blog for setting it up <a href="http://pdhewaju.com.np/blog/how-to-install-smtp-on-windows-8-developer-preview/" rel="nofollow">http://pdhewaju.com.np/blog/how-to-install-smtp-on-windows-8-developer-preview/</a>. But still I am getting the following exceptions when I run the code sample given on JavaMail API's wiki page:  </p>
  
  <pre><code>javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
    nested exception is:
      java.net.ConnectException: Connection refused: connect
      at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
      at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
      at javax.mail.Service.connect(Service.java:295)
      at javax.mail.Service.connect(Service.java:176)
      at javax.mail.Service.connect(Service.java:125)
      at javax.mail.Transport.send0(Transport.java:194)
      at javax.mail.Transport.send(Transport.java:124)
      at EmailTester.main(EmailTester.java:47)
      Caused by: java.net.ConnectException: Connection refused: connect
      at java.net.DualStackPlainSocketImpl.connect0(Native Method)
      at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
      at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
      at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
      at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
      at java.net.PlainSocketImpl.connect(Unknown Source)
      at java.net.SocksSocketImpl.connect(Unknown Source)
      at java.net.Socket.connect(Unknown Source)
      at java.net.Socket.connect(Unknown Source)
      at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:321)
      at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:237)
      at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
      ... 7 more
  </code></pre>
  
  <p>The code is as follows:</p>
  
  <pre><code>import java.util.*;
  import javax.mail.*;
  import javax.mail.internet.*;
  import javax.activation.*;
  
  public class EmailTester
  {
     public static void main(String [] args)
     {    
        // Recipient's email ID needs to be mentioned.
        String to = "mymail@gmail.com";//My email address
  
        // Sender's email ID needs to be mentioned
        String from = "blah@blah.com";// Should this be a real email address?
  
        // Assuming you are sending email from localhost
        String host = "localhost";
  
        // Get system properties
        Properties properties = System.getProperties();
  
        // Setup mail server
        properties.setProperty("mail.smtp.host", host);
        properties.put("mail.debug", "true");
        // Get the default Session object.
        Session session = Session.getInstance(properties);
  
        try{
           // Create a default MimeMessage object.
           MimeMessage message = new MimeMessage(session);
  
           // Set From: header field of the header.
           message.setFrom(new InternetAddress(from));
  
           // Set To: header field of the header.
           message.addRecipient(Message.RecipientType.TO,
                                    new InternetAddress(to));
  
           // Set Subject: header field
           message.setSubject("This is the Subject Line!");
  
           // Now set the actual message
           message.setText("This is actual message");
  
           // Send message
           Transport.send(message);
           System.out.println("Sent message successfully....");
        }catch (MessagingException mex) {
           mex.printStackTrace();
        }
     }
  }
  </code></pre>
  
  <p>So I have multiple questions:
  1) Is installing SMTP server on IIS a good idea for use with JavaMail API? Am I doing things completely wrong?</p>
  
  <p>2) Should I use third party SMTP server like Apache James?</p>