11
votes

Javamail mail.smtp.ssl.enable ne fonctionne pas

J'ai lu sur plusieurs sites qui, lors de l'utilisation de l'API Javamail, pour définir la propriété mail.smtp.ssl.enable sur true. J'ai du code comme suit: xxx

ceci envoie un email, mais:

  1. Lorsque je fais la capture de la circulation, je vois qu'il n'est pas crypté
  2. Lorsque vous utilisez DEBUG ( PROSS.UT ("Mail.debug", "VRAI") ), je vois que "IssSL False"

    (J'ai également essayé ci-dessus en ajoutant dans accessivres ("mail.smtp.auth", "true") + utilisateur / mot de passe ....)

    Des idées ce que je fais mal?


0 commentaires

5 Réponses :


3
votes

Je suggérerais d'utiliser Apache Commons-e-mail . Il a des setters pour les propriétés les plus utilisées (y compris SSL / TLS) et est plus plus conviviale à utiliser et est à l'aide de l'API de JavaMail.

Mise à jour: Je cherchais le code de messagerie Commons et a vu ces lignes: xxx

donc, donnez également ces propriétés un essai aussi.


0 commentaires

16
votes

Pour utiliser SSL, vous devez modifier votre protocole de SMTP à SMTPS en modifiant

trnsport = session.getTransport("smtps");


2 commentaires

Je voulais simplement mettre en œuvre l'envoi de SSL et lorsque j'appelle Session.getTransport ("SMTPS"); ça marche bien. Donc, cette réponse est valide.


Ceci est obsolète, avec le message: La méthode statique Envoyer (Message) à partir du type de transport doit être consulté de manière statique existe un moyen plus moderne de spécifier smtps ?



7
votes

former le Java Doc :

Notez que si vous utilisez le protocole "SMTPS" pour accéder à SMTP sur SSL, toutes les propriétés seraient nommées "Mail.SMTPS. *".


0 commentaires

4
votes

Essayez xxx


0 commentaires

2
votes

Ceci est de la sslnotes document de JavaMail (accent ajouté):

Premier, et peut-être le plus simple, est de définir une propriété pour permettre l'utilisation de SSL. Par exemple, pour permettre l'utilisation de SSL pour connexions SMTP, définissez la propriété "mail.smtp.ssl.enable" à "vrai".

Alternativement, vous pouvez configurer JavaMail pour utiliser l'un des SSL-Activé. Noms de protocole . En plus des protocoles JavaMail non SSL "IMAP", "POP3" et "SMTP", les protocoles "Imaps", "POP3S" et "SMTPS" peuvent être utilisé pour se connecter aux services correspondants à l'aide d'un SSL connexion.

- StartTLS prend en charge

Le support StartTLS est disponible dans la norme "IMAP" et "SMTP" protocoles, mais doit être activé en définissant la propriété appropriée, mail.imap.starttls.enable ou mail.smtp.starttls.enable , "vrai". Lorsque défini, si le serveur prend en charge la commande StartTLS, ce sera utilisé après avoir effectué la connexion et avant d'envoyer un identifiant Informations.

Ainsi, lorsque vous utilisez le support StartTLS, il semble qu'il n'est pas nécessaire de définir le protocole sur SMTPS .


1 commentaires

Selon Le JavaMail Readme Utilisation du mécanisme StartTLS nécessite également d'utiliser le SMTP protocole. C'est un peu contre-intuitif. Le protocole smtps est destiné aux connexions SSL directes qui ne nécessitent pas de démarrage.