2013-02-19 138 views
0

我使用Spring邮件服务从我的服务器发送邮件。 但是,如何确保服务器主机(在用户环境中运行)已运行SMTP服务器?如何声明java服务器(jetty)电子邮件服务?

默认情况下,本地主机上的Spring服务器用户端口25。 当我安装我的服务器或者有更友好的方式发送电子邮件时,我应该从用户那里获得SMTP配置吗?

+0

很可能Spring会抛出一些异常,它的主机:端口对不是SMTP服务器。 – madhead 2013-02-19 11:04:17

+0

是的,它的抛出连接异常,但问题是我不知道我的用户环境中的smtp服务器属性是什么。 – 2013-02-19 18:23:51

+0

那谁知道? – madhead 2013-02-19 18:46:53

回答

0

这样创建一个bean并将其添加到您的应用程序上下文文件..

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host"><value>smtp.gmail.com</value></property> 
    <property name="port"><value>587</value></property> 
    <property name="protocol"><value>smtp</value></property> 
    <property name="username" value="YOUR-MAIL-ID-HERE" /> 
    <property name="password" value="YOUR-PASSWORD-HERE" /> 

    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtp.auth">true</prop> 
      <prop key="mail.smtp.starttls.enable">true</prop> 
      <prop key="mail.smtp.timeout">25000</prop> 
     </props> 
    </property> 
</bean> 

,你应该probalbly使用模板引擎就像Thymeleaf(见here)设置电子邮件的内容在一个单独的文件..

希望这有助于..

+0

谢谢!但在我的情况下,我想使用我的用户smtp服务器存在(如果存在)是他的农场(我猜我的用户也有防火墙,所以我将无法连接其他第三方smtp服务器(例如gmail))。所以这里的问题是:我可以有优雅的方式来找到我的用户群smtp服务器属性,并将它们注入到我的mailSender属性中? – 2013-02-19 18:30:19

+0

看到这篇文章“编译时spring-beans.xml中的属性设置”由mark http://www.coderanch.com/t/450158/Spring/Property-settings-spring-beans-xml回答..可能是你正在寻找.. – Lucky 2013-02-20 10:36:58