12
votes

Erreur d'exception Java Mail;

mycode: xxx

mon erreur:

Exception dans le fil "Main" Java.lang.RuntimeException: Javax.mail.MessagingException:
Unkn inconnu SMTP Host: smtp.gmail.com;
Exception imbriquée est:
java.net.unknownhostexception: smtp.gmail.com
à mail.sendmailtls.main (sendmailtls.java:56)
Causé par: javax.mail.messagrogineException: Host SMTP inconnu: smtp.gmail.com;
Exception imbriquée est:
java.net.unknownhostexception: smtp.gmail.com
à com.sun.mail.smtp.smtptransport.openseerver (smtptransport.java:1970)
chez com.sun.mail.smtp.smtptransport.protocolconnect (SmtpTransport.java:642)
à javax.mail.service.connect (service.java:317) à javax.mail.service.connect (service.java:176)
à javax.mail.service.connect (service.java:125) à javax.mail.transport.send0 (transport.java:194) à javax.mail.transport.send (transport.java:124) à mail.sendmailtls.main (sendmailtls.java:51)
Causé par: java.net.unknownhostexception: smtp.gmail.com
à java.net.plainsocketimpl.connect (plainsockeulpl.java:177)
À Java.net.SockSsSockeImpl.Connect (SOCKSSSOCKEIMPL.JAVA:366)
à java.net.socket.Connect (socket.java:525)
à java.net.socket.Connect (socket.java:475)
à com.sun.mail.util.socketfetcher.Createsocket (socketfetcher.java:319)
à com.sun.mail.util.socketfetcher.Getsocket (socketfetcher.java:233)
chez com.sun.mail.smtp.smtpTransport.openseerver (smtptransport.java:1938)
... 7 de plus de
Java Résultat: 1

je suis le proxy local comme 172.17.0.4:8080 Avec nom d'utilisateur comme: user1 , mot de passe comme: user2
solutions pls ??


4 commentaires

Qu'est-ce que ...? Je me demandais pourquoi vous aviez ajouté des balises Swing et SWT à cela. Ensuite, lors de la vérification des importations en haut de la source, je me demandais pourquoi vous avez ajouté non plus. Soin de clarifier?


Essayez de pinger le serveur et de vérifier si vous êtes capable d'accéder à Gmail de Proxy.


Avez-vous déjà compris cela?


J'ai eu un problème similaire avec pop.gmail.com - le code travaillé, puis une exception de temps est apparue pour quelques essais, alors cela a fonctionné à nouveau. Donc, la faute n'est peut-être pas de votre côté :)


5 Réponses :


1
votes

Pourriez-vous essayer avec accessivres ("mail.smtp.host", "gmail.com"); sans smtp.gmail.com


0 commentaires

14
votes

Essayez ce serveur:

smtp.googlemail.com


1 commentaires

Cela a fonctionné. Mais comment?



12
votes

Si vous êtes sous un proxy, je pense que vous ne pouvez pas utiliser Java Mail.

de: oracle.com

Q: Comment configurer JavaMail pour fonctionner via mon serveur proxy?

A: JavaMail ne prend actuellement pas en charge d'accéder aux serveurs de messagerie via un serveur proxy Web. L'une des principales raisons d'utiliser un serveur proxy consiste à autoriser les demandes HTTP au sein d'un réseau d'entreprise de transmettre un pare-feu d'entreprise. Le pare-feu bloquera généralement la plupart des accès à Internet, mais permettra aux demandes du serveur proxy de passer. De plus, un serveur de messagerie à l'intérieur du réseau d'entreprise effectuera une fonction similaire pour le courrier électronique, l'acceptation de messages via SMTP et les transmettre à leur destination ultime sur Internet et accepter les messages entrants et les envoyer au serveur de messagerie interne approprié.

mise à jour

Q: Comment configurer JavaMail pour fonctionner via mon serveur proxy? [Mise à jour!]

A: À partir de JavaMail 1.6.0, JavaMail prend en charge l'accès aux serveurs de messagerie via un serveur de proxy Web. Définissez les propriétés «Mail.protocol.proxy.host» et «Mail.protocol.proxy.port» pour le serveur proxy. L'authentification de base du serveur proxy est prise en charge en définissant les propriétés "mail.protocol.proxy.utilisateur" et "mail.protocol.proxy.password".

En outre, si votre serveur proxy prend en charge le protocole SOCKS V4 ou V5 ( http: // www.socks.nec.com/aboutsocks.html , RFC1928) et permet aux connexions anonymes et que vous utilisez JDK 1.5 ou plus récent et JavaMail 1.4.5 ou plus récent, vous pouvez configurer un proxy de chaussettes sur un Session, Per-Protocol Base en définissant la propriété "Mail.SMTP.SockS.Host" comme décrit dans les Javadocs pour le package COM.SUN.Mail.SMTP. Des propriétés similaires existent pour les protocoles "IMAP" et "POP3". L'authentification pour les serveurs de chaussettes est prise en charge par le JDK en définissant les propriétés du système "java.net.socks.Ausername" et "java.net.socks.password" (et s'appliquent donc à toutes les connexions SOCKS) comme décrit dans la documentation de propriétés de réseau JDK .

Si vous utilisez des versions plus anciennes de JDK ou JavaMail, vous pouvez indiquer à l'exécution Java de diriger toutes les connexions de socket TCP au serveur SOCKS. Consultez le Guide de propriétés de réseautage de la dernière documentation des propriétés SOCKSPROXYHOSTHOSTPORT et SOCKSPROXYPORT. Ce sont des propriétés au niveau du système et non des propriétés de session Javaail. Ils peuvent être définis à partir de la ligne de commande lorsque l'application est invoquée, par exemple: Java -DsockSProxyHost = myproxy .... Cette installation peut être utilisée pour diriger la communication SMTP, IMAP et POP3 de JavaMail au serveur proxy SOCKS. Notez que la définition de ces propriétés dirige toutes les prises TCP au proxy SOCKS, ce qui peut avoir un impact négatif sur d'autres aspects de votre application.

Lorsque vous utilisez des versions plus anciennes de JavaMail, et sans un tel serveur de chaussettes, si vous souhaitez utiliser JavaMail pour accéder aux serveurs de messagerie en dehors du pare-feu indirectement, vous pourrez peut-être utiliser un programme tel que Connectez-vous à des connexions TCP de tunnel via un HTTP Serveur proxy. Configurez JavaMail pour utiliser l'instance de connexion en tant que serveur Socks.


0 commentaires

1
votes

juste à des fins de développement, vous pouvez essayer d'ouvrir un tunnel via votre proxy à smtp.gmail.com xxx

et utilisation dans votre code xxx


1 commentaires

Comment ouvrir le tunnel?



3
votes

Cela se produit à cause de la sécurité Gmail ... Il suffit de permettre l'accès à votre compte Gmail via des applications allez sous votre compte: https://www.google.com/settings/security/lesssecureApps et cela fonctionnera .. smtp.gmail.com est correct.NO besoin de le changer.

N'oubliez pas non plus de vérifier la connexion Internet.


1 commentaires

Même si c'est une vieille réponse, je voudrais dire que ce n'est que vrai dans certains cas. Dans mon cas, les mesures de réception sont activées, mais toujours le proxy est un problème. Semble qu'il n'y ait pas de bon moyen de surcharger ce problème ..