2016-09-28 10 views
1

私のプレイアプリからメールを送信しようとしています。私はすべての命令をやったplay-mailer plugin を使用していますが、それでも仕事にPlay framework 2.5メール送信

public static void sendSignUpMsg(MailerClient mailerClient, String verificationLink) { 

Email email = new Email() 
     .setSubject("Simple email") 
     .setFrom("t***[email protected]") 
     .addTo("d****[email protected]") 
     .setBodyText("A text message"); 
mailerClient.send(email); 
} 

ので、私が持っている例外

を送る

application.conf

play.mailer { 

    debug = true 
    host = smtp.gmail.com 
    port = 465 
    ssl = true 
    ttl = false 
    user = "to******[email protected]" 
    password = "T****in" 
} 

Gmailに接続できません

 play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[CompletionException: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465]] 
     at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:280) 
     at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:206) 
     at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160) 
     at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188) 
     at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:98) 
     at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100) 
     at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99) 
     at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344) 
     at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343) 
     at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) 
    Caused by: java.util.concurrent.CompletionException: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465 
     at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292) 
     at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308) 
     at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:593) 
     at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577) 
     at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) 
     at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977) 
     at scala.concurrent.java8.FuturesConvertersImpl$CF.apply(FutureConvertersImpl.scala:21) 
     at scala.concurrent.java8.FuturesConvertersImpl$CF.apply(FutureConvertersImpl.scala:18) 
     at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) 
     at scala.concurrent.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:63) 
    Caused by: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465 
     at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421) 
     at org.apache.commons.mail.Email.send(Email.java:1448) 
     at play.api.libs.mailer.SMTPMailer$$anon$2.send(MailerPlugin.scala:100) 
     at play.api.libs.mailer.CommonsMailer.send(MailerPlugin.scala:130) 
     at play.api.libs.mailer.SMTPMailer.send(MailerPlugin.scala:110) 
     at play.api.libs.mailer.SMTPDynamicMailer.send(MailerPlugin.scala:117) 
     at play.api.libs.mailer.MailerClient$class.send(MailerPlugin.scala:56) 
     at play.api.libs.mailer.SMTPDynamicMailer.send(MailerPlugin.scala:114) 
     at services.EmailService.sendSignUpMsg(EmailService.java:14) 
     at services.ValidationService.sendVerificationMail(ValidationService.java:33) 
    Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465 
     at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2055) 
     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697) 
     at javax.mail.Service.connect(Service.java:386) 
     at javax.mail.Service.connect(Service.java:245) 
     at javax.mail.Service.connect(Service.java:194) 
     at javax.mail.Transport.send0(Transport.java:253) 
     at javax.mail.Transport.send(Transport.java:124) 
     at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411) 
     at org.apache.commons.mail.Email.send(Email.java:1448) 
     at play.api.libs.mailer.SMTPMailer$$anon$2.send(MailerPlugin.scala:100) 
    Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
     at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
     at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) 
     at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) 
     at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) 
     at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) 
     at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) 
     at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) 
     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) 
     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) 
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) 
     at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) 
     at sun.security.validator.Validator.validate(Validator.java:260) 
     at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) 
     at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) 
     at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) 
     at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) 
     at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) 
     at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) 
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
     at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) 
     at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) 
     at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) 
     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) 
     at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) 
     at sun.security.validator.Validator.validate(Validator.java:260) 
     at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) 
     at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) 
     at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) 
    DEBUG: JavaMail version 1.5.2 
    DEBUG: successfully loaded resource: /META-INF/javamail.default.providers 
    DEBUG: Tables of loaded providers 
    DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]} 
    DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]} 
    DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map 
    [debug] application - DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle] 
    [debug] application - 

    [debug] application - DEBUG SMTP: need username and password for authentication 
    [debug] application - 

    [debug] application - DEBUG SMTP: useEhlo true, useAuth true 
    [debug] application - 

[debug] application - DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false 
[debug] application - 

[error] application - 

私は自分のPC上のサーバーをテストしていますが、このproblそう?

+0

あなたはデバッグでこれを持っている[デバッグ]アプリケーション - DEBUGのSMTP:ポート465、 "smtp.gmail.com" ホストに接続しようとしています、isSSL falseコードに直接set ssl trueを試すことができます –

+0

あなたの問題の解決策を見つけましたか? – Seeker

答えて

0

あなたはたぶんタイプミスがあるかもしれません。 あなたはgithubのページからではなく、TTL

のTLSを必要とする:

play.mailer { 
    host (mandatory) 
    port (defaults to 25) 
    ssl (defaults to no) 
    tls (defaults to no) 
    user (optional) 
    password (optional) 
    debug (defaults to no, to take effect you also need to set the log level to "DEBUG" for the application logger) 
    timeout (defaults to 60s in milliseconds) 
    connectiontimeout (defaults to 60s in milliseconds) 
    mock (defaults to no, will only log all the email properties instead of sending an email) 
} 
関連する問題