Dans mon application Java, je dois envoyer des e-mails à différentes adresses mail. J'utilise le code suivant, mais pour une raison quelconque, cela ne fonctionne pas.Impossible d'envoyer le courrier à partir de l'application Java
public class main {
public static void main(String[] args) {
Properties props = new Properties();
props.put("mail.smtp.host", "mail.yahoo.com.");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
Session session = Session.getInstance(props, new MyAuth());
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("[email protected]"));
InternetAddress[] address = {new InternetAddress("[email protected]")};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject("subject ");
msg.setSentDate(new Date());
msg.setText("Message here ");
Transport.send(msg);
} catch (MessagingException e) {}
}
}
class MyAuth extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("my username","my password");
}
}
je reçois le texte folowing de debug il:
[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.mail.yahoo.com.au.", port 25, isSSL false
Quelqu'un pourrait-il me dire, ce que je fais mal ici?
Juste pour info, votre code sera plus testable et plus flexible si vous codez sur l'API MailSender de Spring plutôt que sur l'API JavaMail principale. Par exemple, vous ne vous retrouvez pas avec des appels statiques impossibles à tester comme "Transport.send (msg)". –
En règle générale, c'est une bonne idée d'au moins imprimer vos exceptions, en particulier lors du débogage ... –