2010-09-16 25 views
1

Je rencontre des difficultés pour envoyer des e-mails à partir d'une adresse Hotmail en utilisant JavaMail. J'ai vérifié que je peux me connecter à smtp.live.com par l'intermédiaire du port 587 de telnet. La chose intéressante (à moi) est si je change:JavaMail et Hotmail ne fonctionnent pas sur Android

t.connect (hôte, nom d'utilisateur , mot de passe);

Il se connecte à Gmail très bien sur le port par défaut et envoie un e-mail.

Mais si je change le code:

host = "smtp.live.com" t.connect (hôte, 587, nom d'utilisateur, mot de passe); Il me donne l'erreur suivante:

javax.mail.MessagingException: Impossible de se connecter à l'hôte SMTP: smtp.live.com, port: 587;

exception imbriquée est:

java.io.IOException: échec de négociation SSL: échec dans la bibliothèque SSL, généralement une erreur de protocole

erreur: 140770FC: routines SSL: SSL23_GET_SERVER_HELLO: protocole inconnu (externe/OpenSSL /ssl/s23_clnt.c:604 0xaf076228: 0x00000000)

Avec session.setDebug (true) Je reçois cette info:

09-15 01: 57: 37,280: INFO/System.out (720): DEBUG: getProvider() retourne javax.mail.Provider [TRANSPORT, smtps, com.sun.mail.smtp.SMTPSSLTransport, Sun Microsystems, Inc., 1.4.1] 09-15 01: 57: 37.300: INFO/System.out (720): DEBUG SMTP: useEhlo vrai, useAuth vrai 09-15 01: 57: 37.310: INFO/System.out (720): DEBUG SMTP: tentative de connexion à l'hôte "smtp.live.com", port 587, isSSL true 09-15 01: 57: 37.330: INFO/SSLSocketFactory (720): Utilisation de la fabrique [email protected]007ed70 09-15 01: 57: 37.490: DEBUG/NativeCrypto (720): SSL_OP_NO_SSLv3 est défini 09-15 01:57 : 37.538: ERROR/NativeCrypto (720): Erreur inconnue 1 lors de la connexion

Il semblerait que Hotmail ne fonctionne pas bien avec OpenSSL. Quelqu'un at-il une solution pour cela?

Ci-dessous est mon code dans ... juste au cas où cela aide.

Merci à l'avance,

J

String host = "smtp.live.com"; 

String username = [email protected]; 

String password = "**"; 

Transport t = null; 

Properties props = new Properties(); 

props.put("mail.smtps.auth", "true"); 

//props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 

Session session = Session.getInstance(props); 

session.setDebug(true); 

try{ 

MimeMessage msg = new MimeMessage(session); 

msg.setSubject("Testing SMTP-SSL"); 

msg.setContent("This is a test", "text/plain"); 

msg.setFrom(new InternetAddress(username)); 


msg.setRecipients(Message.RecipientType.TO, 

InternetAddress.parse(username, false)); 

t = session.getTransport("smtps"); 

t.connect(host,587, username, password); 

t.sendMessage(msg, msg.getAllRecipients()); 

} catch (Exception e) { 

// TODO Auto-generated catch block 

e.printStackTrace(); 

} finally { 

try { 

t.close(); 

} catch (MessagingException e) { 

// TODO Auto-generated catch block 

e.printStackTrace(); 

} 

} 
+0

Essayez d'utiliser les balises de code [101010] autour de votre code. – jacknad

+0

Terminé. Quelqu'un a-t-il une réponse? – jrhea

+0

avez-vous déjà lu http: // stackoverflow.com/questions/3069966/connect-à-hotmail-avec-javamail ?? est-ce que javamails smtp support ssl? –

Répondre

0

Je l'ai eu le même problème avec l'envoi de courriels Hotmail/Outlook ...

Je résolus en ajoutant le port d'usine socket toujours 578 dans vos propriétés comme:

props.put("mail.smtp.socketFactory.port", "587"); 

et pour le cas hotmail le port est 25.

props.put("mail.smtp.port", "25"); 

Un peu en retard, mais peut-être aide;)