Enviando e-mails do ID do yahoo para outros IDs de e-mail usando a API do Javamail

Não consigo enviar e-mails do meu ID do yahoo usando a API de e-mail Java. Eu tentei diferentes opções do Google, mas não. Por favor, dê uma olhada no meu código abaixo e deixe-me saber se estou perdendo alguma coisa. No meu ponto de vistaYahoo não fornece o serviço gratuito para enviar e-mails, mas não tenho certeza. Por favor, forneça seus pensamentos sobre isso.

import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;

public class MailExample {
    private static final String SMTP_HOST_NAME = "smtp.mail.yahoo.com";
    private static final int SMTP_HOST_PORT = 587;//465,587,25
    private static final String SMTP_AUTH_USER = "dummyrls@yahoo.com";
    private static final String SMTP_AUTH_PWD  = "my password";

    public static void main(String[] args) throws Exception{
       new MailExample().test();
    }

    public void test() throws Exception{
        Properties props = new Properties();

        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", SMTP_HOST_NAME);
        props.put("mail.smtp.auth", "true");
        // props.put("mail.smtps.quitwait", "false");

        Session mailSession = Session.getDefaultInstance(props);
        mailSession.setDebug(true);
        Transport transport = mailSession.getTransport();

        MimeMessage message = new MimeMessage(mailSession);
        message.setSubject("Testing SMTP-SSL");
        message.setContent("This is a test", "text/plain");

        message.addRecipient(Message.RecipientType.TO,
             new InternetAddress("rlss@abc.com"));

        transport.connect
          (SMTP_HOST_NAME, SMTP_HOST_PORT, SMTP_AUTH_USER, SMTP_AUTH_PWD);

        transport.sendMessage(message,
            message.getRecipients(Message.RecipientType.TO));
        transport.close();
    }
}

O código acima funciona bem para o Gmail, mas para o Yahoo está dando erro como:

DEBUG: setDebug: JavaMail version 1.4.1 DEBUG: getProvider() 
  returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,
  Sun Microsystems, Inc.,1.4.1] DEBUG SMTP: useEhlo true, 
  useAuth true 
DEBUG SMTP: trying to connect to host "smtp.mail.yahoo.com", port 587, 
  isSSL false Exception in thread "main" 
javax.mail.MessagingException: Could not connect to SMTP 
  host: smtp.mail.yahoo.com, port: 587;   nested exception is:  
java.net.ConnectException: Connection timed out: connect    
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1391)  
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)  
at javax.mail.Service.connect(Service.java:288)     
at com.sample.mailexample.MailExample.test(MailExample.java:313)    
at com.sample.mailexample.MailExample.main(MailExample.java:291) Caused by: 
   java.net.ConnectException: Connection timed out: connect     
at java.net.PlainSocketImpl.socketConnect(Native Method)    
at java.net.PlainSocketImpl.doConnect(Unknown Source)   
at java.net.PlainSocketImpl.connectToAddress(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:233)     
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)    
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)  
... 4 more

Como posso resolver isso?