2017-11-10 28 views
0

私は、JBOSSで設定されたJavaメールセッションに接続するアプリケーションを開発しています。私は自分のサーバー用にアプリケーションを配備する方法について知識があるだけです。私のスタンドアロン・full.xml私のdomain.xml内JBOSS JNDIルックアップ(メールセッション)エラー

<outbound-socket-binding name="mail-smtp"> 
    <remote-destination host="localhost" port="25"/> 
</outbound-socket-binding> 

。以下は、使用されているサーバーのプロファイルに設定されています。

<subsystem xmlns="urn:jboss:domain:mail:1.2"> 
<mail-session name="default" jndi-name="java:jboss/mail/Default"> 
    <smtp-server outbound-socket-binding-ref="mail-smtp"/> 
</mail-session> 
<mail-session name="EmailFilenet" jndi-name="java:jboss/mail/Email"> 
    <smtp-server ssl="true" outbound-socket-binding-ref="mail-smtp"> 
    <login name="email" password="pass"/> 
    </smtp-server> 
</mail-session> 
</subsystem> 

私のコードです。私はすでにこのガイドをチェックした

23:44:10,025 INFO [stdout] (Thread-5 (HornetQ-client-global-threads- 
473161222)) javax.mail.MessagingException: Could not connect to SMTP host: 
localhost, port: 465; 

23:44:10,025 INFO [stdout] (Thread-5 (HornetQ-client-global-threads- 
473161222)) nested exception is: 

23:44:10,025 INFO [stdout] (Thread-5 (HornetQ-client-global-threads- 
473161222))  java.net.ConnectException: Connection refused: connect 

23:44:10,025 INFO [stdout] (Thread-5 (HornetQ-client-global-threads- 
473161222))  at 
com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972) 

23:44:10,025 INFO [stdout] (Thread-5 (HornetQ-client-global-threads- 
473161222))  at 
com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642) 

23:44:10,025 INFO [stdout] (Thread-5 (HornetQ-client-global-threads- 
473161222))  at javax.mail.Service.connect(Service.java:295) 

23:44:10,025 INFO [stdout] (Thread-5 (HornetQ-client-global-threads- 
473161222))  at javax.mail.Service.connect(Service.java:176) 

23:44:10,025 INFO [stdout] (Thread-5 (HornetQ-client-global-threads- 
473161222))  at javax.mail.Service.connect(Service.java:196) 

Context ictx = new InitialContext();  
mailSession = (Session) ictx.lookup("java:jboss/mail/Email"); 
MimeMessage message = new MimeMessage(mailSession); 
message.setSubject(subject); 
message.setRecipients(javax.mail.Message.RecipientType.TO, 
      javax.mail.internet.InternetAddress.parse(email, false)); 
message.setText(body); 
message.saveChanges(); 

はここでエラーです。 https://docs.jboss.org/jbossweb/3.0.x/jndi-resources-howto.html ただし、サーバーの電源をオフにすると、web.xml getは消去されます。だから私はそれが私に当てはまるとは思わない。

JNDI経由でメールセッションを接続するだけで、プロパティが既に設定されている必要はありませんか?なぜsmtpホストをlocalhostとポート465に接続しようとしていますか?

答えて

0

私は私のdomain.xmlでリモート接続先のホストとポートの値を変更することで、私の問題を解決することができたと

前の設定standalone.xml:

<outbound-socket-binding name="mail-smtp"> 
<remote-destination host="localhost" port="25"/> 
</outbound-socket-binding> 

更新設定:

<outbound-socket-binding name="mail-smtp"> 
<remote-destination host="smtp.gmail.com" port="465"/> 
</outbound-socket-binding> 

これを実行した後。証明書にエラーが発生しました。そこで、Gmailから証明書を抽出し、それを私のトラストストアとキーストアにインポートするためのアプリをダウンロードしました。その後、すべてうまくいった。

0

サーバがlocalhost(<remote-destination host="localhost")にあると言ったので、localhostに接続しようとしています。

あなたがSSL(<smtp-server ssl="true")を使用したいと言ったので、ポート465に接続しようとしています。

+0

おかげ@Billシャノンは、私がメールを送信できるようにするコンフィグの一部を変更する必要がありますか?私はもうこれをどのように受け止めるべきかはわかりません。 –

+0

まあ、はい、あなたは持っている設定が正しくない場合、あなたはそれを変更する必要があります!どのホストに接続しますか?そのホストにSSLが必要ですか?これらの質問に対する回答に基づいて設定を更新してください。 –

関連する問題