2017-07-01 21 views
0

hello boys。私はプレーフレームワークのオープンソースプロジェクトを持っており、私はプロダクションサーバに問題があります。ローカルホストに正しいメールを送りますが、プロダクションサーバでエラーが発生しました:play framework 2.5 gmailはプロードサーバにメールを送信できません

2017-07-01 17:12:09,274 [DEBUG] com.sun.mail.smtp from application-akka.actor.default-dispatcher -19 - ホスト "smtp.gmail.com"、ポート465に接続しようとすると、SSL false

2017-07-01 17:12:09,279 [DEBUG] com.sun.mail.util.socket from application -akka.actor.default-dispatcher-19 - getSocket、ホストsmtp.gmail.com、ポート587、接頭辞mail.smtp、useSSL false

2017-07-01 17:12:09,473 [DEBUG] from com。アプリケーション - akka.actor.default-dispatcher-19のsun.mail.smtp - ホスト "smtp.gmail.com"に接続、ポート:465

2017-07-01 18:12:37,567 [DEBUG] from org.avaje.ebean.SUM in application-akka.actor.default-dispatcher-94 - txn [1007] FindManyタイプ[UserModel] origin [D9IsfI。 DfbUPF.x3-tY] exeMicros [933] rows [0] name []述語[t0.email =? ]バインド[xxx @ xxx]

2017-07-01 18:12:37,641 [DEBUG] com.sun.mail.smtp from application-akka.actor.default-dispatcher-94 - ホストへの接続を試みています"smtp.gmail.com"、ポート587、isSSL false 2017-07-01 18:12:37,641 [DEBUG] from com.sun.mail.util.socket in application-akka.actor.default-dispatcher-94 - getSocket、ホストsmtp.gmail.com、ポート465、接頭辞mail.smtp、useSSL false

2017-07-01 18:12:37,802 [DEBUG] from com.sun.mail.smtp in application-akka.actor .default-dispatcher-94 - ホスト "smtp.gmail.com"に接続しています。ポート:465

ここにリポジトリがあります:https://bitbucket.org/companystalker/com.silenceonthewire

私を助けることができますか? WTF?

+0

、期待どおりに私たちを示していませんでしたコードが動作しない理由を求めています。これは非常に難しいタイプの質問です。あなたの質問に[最小、完全、そして検証可能な例](http://stackoverflow.com/help/mcve)コードを投稿することで、より簡単にすることができます。 –

答えて

0

マイSSLコードは次のとおりです。

package emails; 

import play.Play; 

import javax.mail.*; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 
import java.util.HashMap; 
import java.util.Properties; 

/** 
* Created by adrian on 06.06.17. 
*/ 
public class SendSslEmail { 

    public void email(HashMap<String, String> email){ 
     Properties props = new Properties(); 
     props.put("mail.smtp.host", Play.application().configuration().getString("mail.smtp.host")); 
     props.put("mail.smtp.socketFactory.port", Play.application().configuration().getString("mail.smtp.port")); 
     props.put("mail.smtp.socketFactory.class", 
       "javax.net.ssl.SSLSocketFactory"); 
     props.put("mail.smtp.auth", Play.application().configuration().getString("mail.smtp.auth")); 
     props.put("mail.smtp.port", Play.application().configuration().getString("mail.smtp.port")); 

     Session session = Session.getInstance(props, 
       new javax.mail.Authenticator() { 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication(
           Play.application().configuration().getString("mail.username"), 
           Play.application().configuration().getString("mail.password") 
         ); 
        } 
       }); 

     try { 

      Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress(Play.application().configuration().getString("mail.username"))); 
      message.setRecipients(Message.RecipientType.TO, 
        InternetAddress.parse(email.get("to"))); 
      message.setSubject(email.get("subject")); 
      message.setText(email.get("content")); 

      Transport.send(message); 

      System.out.println("Done"); 

     } catch (MessagingException e) { 
      throw new RuntimeException(e); 
     } 
    } 

} 

と設定は次のとおりです。言い換えれば

# TLS settings 
mail.smtp.auth = true 
mail.smtp.starttls.enable = true 
mail.smtp.socketFactory.port = 587 
mail.smtp.host = "smtp.gmail.com" 
mail.smtp.port = 465 
mail.username = "[email protected]" 
mail.password = "" 

play.filters.csrf.header.bypassHeaders { 
    X-Requested-With = "*" 
    Csrf-Token = "nocheck" 
} 

play.filters.csrf.bypassCorsTrustedOrigins = false 
関連する問題