Originariamente inviato da andbin
Ok, il che mi pare inequivocabile: richiede autenticazione.

Secondo la documentazione di JavaMail, visto che hai usato il send static di Transport allora la soluzione è: innanzitutto impostare la property mail.smtp.auth a "true" e poi implementare un javax.mail.Authenticator da passare all'altra versione di Session.getInstance.

Questo Authenticator è una semplice classe che devi estendere per ridefinire il metodo:
public PasswordAuthentication getPasswordAuthentication()
nel cui corpo basta istanziare e restituire un PasswordAuthentication con username e password.

La versione di getInstance è:
getInstance(Properties props, Authenticator authenticator)
ho fatto questo ora?

codice:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import javax.mail.Authenticator;
public class Invio {
    public static void main(String[] args) 
    {
        String to="prova@yahoo.it";
        String from="prova@yahoo.it";
        String host="smtp.mail.yahoo.com";
        Properties props = new Properties();
        props.put("mail.smtp.host",host);
        props.put("mail.debug","true");
        props.put("mail.smtp.auth","true");
        Session session=Session.getInstance(props);
        try {
            Message msg=new MimeMessage(session);
            msg.setFrom(new InternetAddress(from));
            InternetAddress[] address ={new InternetAddress(to)};
            msg.setRecipients(Message.RecipientType.TO, address);
            msg.setSubject("An Hello World e-mail!");
            msg.setSentDate(new Date());
            msg.setText("Hello world!");
            Transport.send(msg);
        }
        catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}