10
votes

Java Mail: Aucun fournisseur de SMTP

J'utilise JavaMail pour effectuer une application simple qui envoie un courrier électronique lorsqu'il trouve des fichiers dans un répertoire. J'ai réussi à le faire fonctionner depuis Eclipse. J'exécute l'application et il a envoyé l'e-mail sans erreur.

Mais, lorsque j'ai créé le pot, et l'exécutions, elle échoue dans la pièce d'envoi de courrier électronique. Il donne à cette exception: xxx

J'utilise la bibliothèque dans cette méthode: xxx

Je charge ces valeurs de fichiers de propriétés. xxx

J'ai essayé de modifier l'hôte par SSL: //smtp.gmail.com, le port de 465 (juste pour essayer quelque chose de différent), mais il ne fonctionne pas non plus. Quoi qu'il en soit, si cela fonctionne bien d'Eclipse avec les paramètres d'origine, je suppose que les valeurs sont correctes, mais le problème crée le pot. Je ne sais pas beaucoup sur les résultats éventuels ou les changements lors de la création d'un pot. Les bibliothèques JavaMail pourraient-elles être mal tournées lorsque le pot est créé?

Avez-vous des idées?


0 commentaires

6 Réponses :


10
votes

Les pots de support: mail.jar et activation.jar ne figurent pas sur votre parcours de classe. Lorsque vous construisez votre pot, vous devez les inclure sur votre parcours de classe.


3 commentaires

Merci beaucoup d'avoir répondu si vite. Je viens d'essayer ce que tu m'as dit, je ne sais pas si je l'ai fait de la bonne façon: à l'intérieur de l'éclipse, dans les propriétés du projet, j'ai vu que dans le chemin de construction, dans les bibliothèques: Activation.jar, Mailapi .jar, smtp.jar ... y a-t-il. Dans l'ordre et l'exportation, j'ai vérifié ces jar. Ils n'étaient pas vérifiés avant. J'ai encore exporté le pot, mais l'erreur persiste. Peut-être que j'ai fait quelque chose de mal? Peut-être que je ne devrais-je pas le faire de Eclipse? Merci Mike.


Je ne connais pas l'éclipse. Mais c'est certainement quelque chose lié à la classe de classe. Vous pouvez modifier la façon dont vous exécutez le bocal comme prochaine étape. Incluez le chemin de ces deux pots lorsque vous exécutez votre pot. Donc, au sommet de ma tête, quelque chose comme: jar -cp ./full/path/to/activation.jar :/full/path/to/mail.jar -jar yourjarname.jar


Merci Mike. Je vais essayer avec ça.



4
votes

J'ai eu le même problème.

Vous pouvez le réparer en effectuant le fichier JAR annoncé dans Eclipse et en utilisant des options de manutention de la bibliothèque. Sélectionnez le second lors de la fabrication de votre pot, celui qui dit "Bibliothèques requises obligatoires dans le pot généré" .

 bibliothèques requises


0 commentaires

-1
votes

J'ai réussi à corriger cette erreur, qui était dû à une mauvaise bibliothèque. J'ai essayé d'utiliser javax.mail JAR téléchargé de Maven, qui s'est avéré être incomplet. J'ai donc cherché une fois de plus pour javamail et obtenu un Directement de Oracle (cliquez sur releasez lien). Cette fois, c'est un fichier zip.


0 commentaires

3
votes

Vous devez ajouter le fichier smtp.jar, j'ai également été bloqué avec la même erreur après une recherche sur Google et une vérification sur certains projets plus anciens, j'ai constaté que j'ai manqué ce pot particulier dans ma bibliothèque, j'ai ajouté ce pot à la bibliothèque et trouvé problème fixé.


0 commentaires

1
votes

J'ai eu la même erreur, mettant à jour le pot de Oracle directement corrigé.


0 commentaires

1
votes

Pour ceux qui utilisent Gradle: vous pouvez obtenir tous les bocaux requis comme suit (1.5.5 est la dernière version):

    compile 'com.sun.mail:javax.mail:1.5.5'


0 commentaires