VORREI FARE UN PROGRAMMA CHE MI INVIA AUTOMATICAMENTE LE EMAIL! LHO SVOLTO MA DA DEGLI ERRORI!!!

codice:
import java.util.Properties;
import java.io.*;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class invioEmail{
	 
	  static String host = "smtp.mail.yahoo.it"; //tuo smtp
	  String from = "elixxxxxx@yahoo.it"; //tuo indirizzo email
	  String ToAddress = "elxxx8@gmail.com"; //destinatario
	  static String user = "xxxxxxx";
	  static String pass = "xxxxxx";
	  

	public static void invioEmail()throws MessagingException
	{
		
		Properties props = new Properties();
	    props.put("mail.smtp.host", host);
	      props.put("mail.debug", "true");
	      props.put("mail.smtp.auth","true");
	     
	      
	      Session session = Session.getDefaultInstance(props, null);
	      session.setDebug(true);

		 session.setPasswordAuthentication(new URLName("smtp",host,25,"INBOX",user,pass), new PasswordAuthentication(user,pass));
		
		MimeMessage messaggio= new MimeMessage (session);
		
		
		String mitt= "xxxxxx8@yahoo.it";
		String dest= "xxxxx88@gmail.com";
		InternetAddress fromAddress = new InternetAddress(mitt);
		InternetAddress toAddress = new InternetAddress(dest);
		messaggio.setFrom();
		messaggio.addRecipients(Message.RecipientType.TO, dest); 
		
		messaggio.setSubject("Rid prova elisa email");
		messaggio.setText("pppROVAAAA");
		
		Transport tr = session.getTransport("smtp");
	      tr.connect(host, user, pass);
	      messaggio.saveChanges(); // don't forget this
	      tr.sendMessage(messaggio, messaggio.getAllRecipients());
	      tr.close();

		
				
	}
	
	public static void main(String [] args) throws MessagingException{
		invioEmail invio = new invioEmail();
		invio.invioEmail();
	}
}
mi da degli errori :

codice:
Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.yahoo.it, port: 25;
  nested exception is: 
	java.net.ConnectException: Connection timed out: connect
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:867)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:156)
	at javax.mail.Service.connect(Service.java:234)
	at javax.mail.Service.connect(Service.java:135)
	at invioEmail.invioEmail(invioEmail.java:51)
	at invioEmail.main(invioEmail.java:62)