Salve a tutti!
Stò cercando di inviare da un programma java una mail. l'idea sarebbe di inviarne una con allegato, ma intanto comincio dalle cose semplici.

ecco il codice:

codice:
String host = "smtp.gmail.com";
        int port = 587;
        String username = "user_name";
        String password = "psw";

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");

        Session session = Session.getInstance(props);

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("mail_mittente@gmail.com"));
        message.setRecipients(Message.RecipientType.TO,
        InternetAddress.parse("mail_destinatario@virgilio.it"));
        message.setSubject("Prova d'invio");
        message.setText("Ciaoooooooooooo!!!");

        Transport transport = session.getTransport("smtp");
        transport.connect(host, port, username, password);
  
        transport.send(message,message.getAllRecipients());      <---- qui mi lancia eccezione

        System.out.println("Inviata");
Quando arriva nel punto segnato mi lancia eccezione del tipo:


codice:
Exception caught after invoking slot
javax.mail.AuthenticationFailedException
        at javax.mail.Service.connect(Service.java:306)
        at javax.mail.Service.connect(Service.java:156)
        at javax.mail.Service.connect(Service.java:105)
        at javax.mail.Transport.send0(Transport.java:168)
        at javax.mail.Transport.send(Transport.java:120)
        at Interfaccia.Fattura.mail(Fattura.java:230)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
        at com.trolltech.qt.QSignalEmitter$Signal1.emit(QSignalEmitter.java:209)
        at com.trolltech.qt.gui.QApplication.exec(Native Method)
        at Interfaccia.Home.main(Home.java:45)
sono sicura al 100% che username e password sono corrette.
Qualcuno sa aiutarmi?

Grazie!!! =)