com.soleil.mail.smtp.SMTPSendFailedException: 530 5.7.0 Doit d'abord émettre une commande STARTTLS
Je suis entrain de créer une application en play 2.2.1
et d'essayer d'ajouter courrier électronique.Pour ce que j'ai ajouté de la dépendance dans mon construire.sbt fichier.Mais aussi d'avoir une exception expliquée ci-dessous
mon code
String smtpHost = Play.application().configuration().getString("smtp.host");
Integer smtpPort = Play.application().configuration().getInt("smtp.port");
String smtpUser = Play.application().configuration().getString("smtp.user");
String smtpPassword = Play.application().configuration().getString("smtp.password");
Email mail = new SimpleEmail();
try {
mail.setFrom("[email protected]");
mail.setSubject("hi");
mail.setMsg("This is the message");
mail.addTo("[email protected]");
} catch (Exception e) {
e.printStackTrace();
}
mail.setHostName(smtpHost);
if (smtpPort != null && smtpPort > 1 && smtpPort < 65536) {
mail.setSmtpPort(smtpPort);
}
if (!smtpUser.isEmpty()) {
mail.setAuthentication(smtpUser, smtpPassword);
}
try {
mail.send();
} catch (Exception e) {
e.printStackTrace();
}
De code inclus dans l'application.conf
# Email Configuration
smtp.host=smtp.gmail.com
smtp.port=587
smtp.ssl=yes
smtp.user="[email protected]"
smtp.password="123456"
smtp.auth=true
smtp.STARTTLS.enable=true
Mais je suis une exception
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:587
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1410)
at org.apache.commons.mail.Email.send(Email.java:1437)
at controllers.SendMail.registrationSuccessful(SendMail.java:53)
at controllers.JobseekerController.registerJobseeker(JobseekerController.java:62)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$11$$anonfun$apply$11.apply(routes_routing.scala:185)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$11$$anonfun$apply$11.apply(routes_routing.scala:185)
at play.core.Router$HandlerInvoker$$anon$7$$anon$2.invocation(Router.scala:183)
at play.core.Router$Routes$$anon$1.invocation(Router.scala:377)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:56)
at play.db.jpa.TransactionalAction$1.apply(TransactionalAction.java:20)
at play.db.jpa.TransactionalAction$1.apply(TransactionalAction.java:18)
at play.db.jpa.JPA.withTransactionAsync(JPA.java:177)
at play.db.jpa.TransactionalAction.call(TransactionalAction.java:15)
at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:91)
at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:90)
at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:278)
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:274)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:29)
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:37)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. cq6sm31661301pad.30 - gsmtp
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2057)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1580)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1097)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1400)
... 26 more
Comment puis-je résoudre ce problème?
OriginalL'auteur singhakash | 2014-12-06
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devez spécifier que vous envoyez un TLS e-mail avant l'envoi de l'email.
Je ne suis pas sûr à 100% mais je pense que ça pourrait résoudre le problème.
Aussi pour plus d'info vous pouvez vous référer à ce guide de l'utilisateur:
https://commons.apache.org/proper/commons-email/userguide.html
oui, il est Obsolète depuis la 1.3, mais vous pouvez utiliser setStartTLSEnabled() à la place. 🙂
OriginalL'auteur asvni