8
votes

JavaMail Numéro: Impossible d'envoyer la commande à l'hôte SMTP

J'essaie de faire de Java Mail and im obtenir une erreur "impossible d'envoyer une commande à l'hôte SMTP". Toute aide serait appréciée. Et des solutions de problèmes futurs si possible. L'exception exacte est xxx

mon code est comme suit xxx


7 commentaires

"Et tous les problèmes futurs" Solutions si possible "- vraiment?


Eh bien, je veux dire comme si je mets "mail.smtp.auth" plus tôt et obtenu une erreur de nom d'utilisateur et de mot de passe, c'est donc ce que je veux dire


La trace de la pile dit "Connexion fermée par l'hôte distant". Vous allez devoir utiliser Wireshark pour capturer le trafic et trouver la séquence exacte des événements. Que se passe-t-il si vous avez manuellement Telnet sur le serveur de messagerie et essayez une session de courrier?


Je suis désolé, je ne suis pas trop familier avec SMTP et courrier, donc je n'ai pas compris exactement ce que vous venez de dire. Pouvez-vous s'il vous plaît désoccuper cela? :)


J'ai posté une réponse ci-dessous. Cependant, jusqu'à ce que vous comprenez beaucoup plus sur SMTP et TLS, vous ne pourrez pas progresser.


@JimGarrison qui n'est pas très utile - il serait utile de montrer comment corriger cela pour Jenkins


@Tim avez-vous publié votre configuration de mail Jenkins sur SuperUserer? C'est là que vous serez le plus susceptible d'obtenir de l'aide pour un problème spécifique à Jenkins.


6 Réponses :


1
votes

Le serveur nécessite des starttls. Voici ce que je reçois si je fais une session manuelle SMTP avec Telnet:

220 BLU0-SMTP122.phx.gbl Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at  Mon, 18 Jul 2011 17:08:14 -0700
HELO jhmg.net
250 BLU0-SMTP122.phx.gbl Hello [70.123.155.64]
MAIL FROM:<zzz@zzz.com>
530 5.7.0 Must issue a STARTTLS command first


4 commentaires

Ok, alors vous dites que je dois crypter ma connexion?


Comment j'irais-je exactement ça? Je suis désolé si je sonne bien ou quelque chose que je suis juste nouveau à poster et de choses


@JimGarrison Le lien est cassé, pouvez-vous le trouver? Merci!


@Globmont Avez-vous trouvé comment chiffrer votre connexion?



12
votes

Aujourd'hui, j'ai traversé ce même problème. Mais pour moi, le problème est que dans SMTP Server TLS n'a pas été activé. J'ai donc changé les propriétés du courrier comme celle-ci.
mail.smtp.starttls.enable = false

Maintenant, tout va bien fonctionner pour moi.


5 commentaires

Il suffit d'avoir le même problème aujourd'hui - cela a résolu ma question aussi :)


Pouvez-vous dire où se passe-t-il à Jenkins?


Je ne suis vraiment pas sûr de Jenkins. Mais comme un utilisateur ordinaire d'ordinateur, je suggérerais de rechercher le fichier contient le texte mail.smtp.starttls . Ignorer si je me trompe avec vous.


Je suis également confondu de savoir où régler cela. J'ai trouvé cette question depuis que j'ai le même problème à Jenkins


Vous pouvez la définir dans Jenkins -> Configuration -> Propriétés globales



0
votes

Essayez d'ajouter de l'adresse

mail.setfromaddress ("nom");


0 commentaires

3
votes

Dans mon cas, j'ai pu trouver le problème racine après avoir activé le débogage du courrier.

Différentes façons d'activer le débogage du courrier: p>

Java -dmail.debug = .. . CODE> P>

props.put("mail.smtp.starttls.enable", "true");
props.put("mail.debug", "true");


2 commentaires

Et qu'est-ce que tu as fait pour le réparer?


J'ai utilisé mon domaine gsuite dans la ligne de: ligne pour le réparer



0
votes

Vous devez définir SSL Trust sur smtp.gmail.com xxx

et authentificateur comme paramètre pour la session xxx


0 commentaires

-1
votes

a ajouté cette ligne pour O365. Fonctionne bien maintenant.

sslmailprops.put ("mail.smtp.ssl.enable", "vrai");


1 commentaires

Veuillez fournir plus d'informations sur la solution que vous fournissez.