[resolu][JavaMail] Authentification smtp
Bonjour,
Je cherche a utiliser JavaMail pour envoyer des mails a travers un serveur smtp nécessitant l'authentification.
Le problème est le suivant :
Citation:
Exception in thread "main" javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:264)
at javax.mail.Service.connect(Service.java:134)
at javax.mail.Service.connect(Service.java:86)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:144)
at javax.mail.Transport.send0(Transport.java:150)
at javax.mail.Transport.send(Transport.java:80)
at JMailSMTP.main(JMailSMTP.java:32)
A première vue, c est simplement le login/password qui sont faux. Et bien non !
Petit extrait du dialogue SMTP Client/Serveur :
Citation:
S : 250-AUTH LOGIN PLAIN
C : AUTH LOGIN
S : 334 VXNlxyzebWU6
C : (une chaine de caractere code en base64 du user)
S : 334 UGFzc3xuejQ6
C : (une chaine de caractere code en base64 du password)
S : 235 ok, go ahead
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.s
mtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
Exception in thread "main" javax.mail.AuthenticationFailedException blablablabla....
2 preuves que l'authentification a réussi :
_ le serveur smtp répond "235 ok, go ahead" (autrement il aurait répondu quelque chose comme "535 auth failure")
_ en reprenant la procédure manuellement par telnet, j arrive sans problème a envoyer des mails en ligne de commande smtp.
Alors pourquoi la jvm me renvoie t elle une AuthenticationFailedException alors que visiblement, l authentification se déroule bien ?
Idées, suggestions, tout est bon a prendre.
Merci d'avance !
Probleme avec ce bout de code....cela ne fonctionne pas chez moi.
Citation:
Envoyé par
ArithmeticException
Solution trouvée.
Le probleme residait dans le Transport.
Pour ceux qui tomberait sur le meme probleme voila la classe type d envoi de mails avec JavaMail au travers d un serveur requierant l authentification :
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
|
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class smtpTest {
public static void main (String[] args) throws Exception {
String smtpHost = "smtp.xyz.com";
String from = "originataire@origine.com";
String to = "destinataire@destination.com";
String username = "moi";
String password = "mon_mot_secret";
Properties props = new Properties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Hello");
message.setText("Hello World");
Transport tr = session.getTransport("smtp");
tr.connect(smtpHost, username, password);
message.saveChanges();
// tr.send(message);
/** Genere l'erreur. Avec l authentification, oblige d utiliser sendMessage meme pour une seule adresse... */
tr.sendMessage(message,message.getAllRecipients());
tr.close();
}
} |
Mon erreur fut donc de vouloir simplifier le code en utilisant une methode plus simple. :roll:
Probleme avec ce bout de code....cela ne fonctionne pas chez moi.
Citation:
Envoyé par
tunbader
bonjour,
j'ai utilisé votre code et il marche,
je veux juste savoir comment faire pour envoyer ce email a plusieurs utilisateurs?
merci,
Slt ce bout de code ne fonctionne pas chez moi,Merci de m'aider.
Cdlt