2017-06-30 45 views
0

在我的spring mvc web應用程序中,我通過org.springframework.mail.MailSender發送郵件。它適用於localhost,雖然我的應用程序部署在tomcat上,通過nginx建立連接。春季 - nginx中的郵件發件人

我認爲問題出在nginx可能阻塞587端口。

mailSender的配置:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="myhost" /> 
    <property name="port" value="587" /> 
    <property name="username" value="[email protected]"/> 
    <property name="password" value="mypsw"/> 
    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtp.auth">true</prop> 
      <prop key="mail.smtp.starttls.enable">true</prop> 
      <prop key="mail.smtp.ssl.trust">myhost</prop> 
     </props> 
    </property> 
</bean> 

我nginx的confinguration:

upstream tomcat { 
    server 127.0.0.1:8080 fail_timeout=0; 
} 
server { 
     listen 80 default_server; 
     listen [::]:80 default_server; 
     server_name mydomain; 
     return 301 https://$server_name$request_uri; 
} 
server { 
    # SSL configuration 
    listen 443 ssl http2 default_server; 
    listen [::]:443 ssl http2 default_server; 
    include snippets/ssl-mydomain.conf; 
    include snippets/ssl-params.conf;` 
. 
. 
.` 

這是試着發送電子郵件時,我發現了錯誤:

enter image description here

互聯網並沒有多說這種配置所以如果你能幫助我,我會非常高興。

+0

提供你已經修改了它'SSL-mydomain.conf'and也'SSL-params.conf'if的全部配置。從我可以看到nginx沒有配置爲監聽端口587.我的第一個意圖是你的防火牆,你檢查過它嗎? – secustor

+0

這些配置文件與案件無關,我相信(糾正我,如果我錯了)。它們僅用於SSL配置。 如果我只是添加 服務器監聽587 default_server; listen [::]:587 default_server; } 它仍然不起作用,那麼我應該如何配置它呢? 另外,nginx在我的防火牆中擁有完全的權限。 – fryzjerro

+0

是否有理由讓你通過nginx路由傳出連接?我目前看不到這一點。 – secustor

回答