2016-07-12 5 views
-2

私は奇妙な問題があります。私のSMTPサーバーはLinuxホストに配備されています(postfix/dovecot)。私はSpring MVC + TomcatベースのWebアプリケーションを持っています。ローカルのMacBookからLunixサーバ(Centos)のSMTPサーバに接続すると、メッセージが正常に送信されます。しかし、LinuxシステムでTomcat 7(信頼できるCA cert SSLを使用して)にWebアプリケーションをデプロイすると、サーバから354を受け取った後に接続拒否例外が発生します。また、smtp用のオープンSSL証明書を生成し、jdk/jre/lib/security/cacertの信頼できる証明書に追加しました。私は両方のmacbookとfreshmeat_linux/Linux]サーバ上でsmtpとsmtpsを試してみました。 devの両方で動作します。 Linux(prod)では、どちらも失敗します。 devとprodの両方で、認証とログインができることに注意してください。 '354 End data with。'の後にのみ表示されます。 SMTPからの応答、devとprodの動作が異なります。 PRODからSMTP接続が354後に拒否されたのは、smtpと同じマシンに配備されたWebサーバーからのみpostfix

354 End data with <CR><LF>.<CR><LF> 
.. 
From: Test User <[email protected]> 
To: [email protected] 
Message-ID: <[email protected] Pro.local> 
Subject: Acknowledgement 
MIME-Version: 1.0 

(SMTPとSMTPSの両方が同じ場所で失敗:DEVログから

  <property name="host" value="${linux.host}" /> 
      <property name="port" value="${linux_ssl.port}" /> 
      <property name="username" value="${username}" /> 
      <property name="password" value="${password}" /> 
      <property name="protocol" value="smtps" /> 

    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtps.auth">true</prop> 
      <prop key="mail.smtps.connectiontimeout">5000</prop> 
      <prop key="mail.smtps.sendpartial">true</prop> 
      <prop key="mail.smtps.userset">true</prop> 
      <prop key="mail.mime.charset">UTF-8</prop> 
      <prop key="mail.smtps.isSecure">true</prop> 
      <prop key="mail.smtps.requiresAuthentication">true</prop> 
      <prop key="mail.smtps.port">465</prop> 
      <prop key="mail.smtps.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> 
      <prop key="mail.smtps.socketFactory.fallback">true</prop> 
      <prop key="mail.smtps.starttls.enable">true</prop> 
      <prop key="mail.debug">true</prop> 
      <!-- <prop key="mail.smtps.ssl.checkserveridentity">true</prop> 
      <prop key="mail.smtps.ssl.trust">*</prop> --> 
     </props> 
    </property> 
</bean> 

SMTPのデバッグ - :私の春のappServerContext.xmlから

同じエラー)

DATA 
354 End data with <CR><LF>.<CR><LF> 
DEBUG SMTP: IOException while sending, closing, THROW: 
java.net.ConnectException: Connection refused at  java.net.PlainSocketImpl.socketConnect(Native Method) at  
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)at  java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:625) at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:160) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275) at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:371) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:933) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) at org.springframework.core.io.UrlResource.getInputStream(UrlResource.java:168) at org.springframework.mail.javamail.MimeMessageHelper$1.getInputStream(MimeMessageHelper.java:1093) at javax.activation.DataHandler.writeTo(DataHandler.java:305) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1485) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:865) at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:462) at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:103) at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:889) at javax.activation.DataHandler.writeTo(DataHandler.java:317) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1485) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:865) at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:462) at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:103) at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:889) at javax.activation.DataHandler.writeTo(DataHandler.java:317) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1485) at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1773) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1119) at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:433) at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:345) at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340) 

私は徹底的に正確な問題を探しました。しかし、ConnectionRefusedの例がありますが、smtpサーバと同じボックスにある354の直後に来たものはありませんでした。

事前にお寄せいただきありがとうございます。

答えて

0

socket factory stuff, you don't need itを取り除く。

送信しているメッセージのコンテンツの一部にURLDataSourceを使用していますか? JavaMailがメッセージの内容の一部にアクセスしようとすると、接続が切断されます。これには、一部のサーバーへのhttps接続が必要です。これはドロップされているSMTP接続であり、SMTP接続が切断されます。

+0

本当に正しい@Bill Shannonは、100%正確です。私はそのURLResourceをServletContextResourceに変更し、それが動作し始めました。あなたは私の週を救い、私の一日を作った。どうもありがとうございます。神のご加護を!!! – Yvonne

0

この問題は@ bill-shannonによって正しく指摘されました。それは本当に問題だったpng画像のURLResourceでした。私はそれをServletContextResourceに変更しました。 うまくいけば、誰かがこれを見つけると、欲求不満と時間を節約できます。 これを正しく釘付けにしてくれたBill Shannonに特別なおかげで!

関連する問題