Envoi mail : non prise en compte d'un paramètre SMTP modifié.
Bonjour,
Voici mon problème :
Je permet l'envoie des mails via une application que je développe dans le but de m'entrainer.
L'envoi des mails marche très bien (en même temps j'ai rien inventé :-) ).
Sur mon application j'ai ajouté une fenêtre pour le paramétrage de la connexion au serveur SMTP.
Je fais le test suivant :
Je configure correctement l'adresse du serveur SMTP (exemple : smtp.live.com) et j'envoie le mail => OK, le mail est envoyé
Je modifie l'adresse (smtp.toto.com) et j'envoie le mail => KO, le mail est envoyé alors que je m'attendais à avoir une erreur.
Je ferme l'application.
Je relance l'application sans modifier les paramètres (on a donc toujours smtp.toto.com en base) et j'envoie le mail => OK le mail n'est pas envoyé j'ai bien mon message d'erreur.
Voici mon code (j'ai ajouté mes constations en commentaires) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
public void envoyerEmail() throws Exception{
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", SMTP_HOST_NAME); //Ici j'ai bien la valeur attendue soit smtp.live.com soit smtp.toto.com
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.EnableSSL.enable","true");
Authenticator auth = new SMTPAuthenticator();
Session mailSession = Session.getDefaultInstance(props, auth);
System.out.println("=>mailSession.getProperty : "+mailSession.getProperty("mail.smtp.host")); //Ici je n'ai pas la valeur attendue, c'est toujours l'ancienne si je ne relance pas l'application
// uncomment for debugging infos to stdout
mailSession.setDebug(true);
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage(mailSession);
Multipart multipart = new MimeMultipart("alternative");
BodyPart part1 = new MimeBodyPart();
part1.setText("Hello, juste un petit test");
BodyPart part2 = new MimeBodyPart();
part2.setContent("Hello, juste un petit test", "text/html");
multipart.addBodyPart(part1);
multipart.addBodyPart(part2);
message.setContent(multipart);
message.setFrom(new InternetAddress(SMTP_AUTH_USER));
message.setSubject("Hello, juste un petit test");
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(EMAIL_DESTINATAIRE));
transport.connect();
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
} |
Je pense que c'est cette ligne qui fait que j'obtiens toujours la même valeur :
Code:
Session mailSession = Session.getDefaultInstance(props, auth);
Comment puis-je faire pour que la nouvelle soit bien prise en compte?
Merci d'avance.