title: Unable to send a mail using JavaMail api
body: <p>I'm trying to sned a mail using the below code :-</p>
  
  <pre><code>java.awt.EventQueue.invokeLater(
                  new Runnable() {
  
                      @Override
                      public void run() {
  
                          new SwingWorker&lt;Void, Integer&gt;() {
  
                              String to = "xx@gmail.com";
                              // Sender's email ID needs to be mentioned
                              String from = "xexx@gmail.com";
                              // Assuming you are sending email from localhost
                              String host = "localhost";
                              // Get system properties
                           //   Properties properties = System.getProperties();
  
                              // Setup mail server
  
  
                              protected Void doInBackground() throws Exception {
                                  try {
  Properties properties =  new Properties();
  properties.put("mail.smtp.socketFactory.port", "465");
  properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
  properties.put("mail.smtp.starttls.enable", "true");
          // Get the default Session object.
          Session session = Session.getDefaultInstance(properties);
  
                                      // 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("Message" + jTextField1.getText() + " xx " + jTextField2.getText());
  
                                      // Send message
                                      Transport.send(message);
  
                                  } catch (Exception x) {
                                      x.printStackTrace();
                                  }
                                  return null;
                              }
  
                              protected void process() {
  
                              }
  
                              protected void done() {
                                  try {
  
                                      JOptionPane.showMessageDialog(null, "You'll get a response from our team shortly !");
  
                                  } catch (Exception x) {
                                  }
  
                              }
                          }.execute();
                      }
  </code></pre>
  
  <p>On call of the above code i'm getting an Exception :</p>
  
  <pre><code>javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
    nested exception is:
      java.net.SocketException: Permission denied: connect
      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: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 ims.Activation$5$1.doInBackground(Activation.java:374)
      at ims.Activation$5$1.doInBackground(Activation.java:327)
      at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      at javax.swing.SwingWorker.run(SwingWorker.java:335)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:722)
  Caused by: java.net.SocketException: Permission denied: connect
      at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
      at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
      at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
      at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
      at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
      at java.net.Socket.connect(Socket.java:579)
      at java.net.Socket.connect(Socket.java:528)
      at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
      at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
      at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
      ... 15 more
  </code></pre>
  
  <p>How can i resolve this?</p>