在Spring中使用Gmail的SMTP寄信
前一陣子,要使用Send Mail的功能,並且要將整個Resources整併到專案中,所以找了一些文件,但找到的文件中,幾乎都是片斷的SourceCode,還是無法在單一教學的文件中,一次將所有的設定檔完成,因此將試驗的結果Po出來,給有需要的人參考,在這裡成功的將Gmail的組態註冊到Tomcat/JBoss中,並在Spring中使用這些資源。另外在Mail Message的Template上,也使用Velocity來協助處理。
所有的步驟共分成三個部份
首先,開啟Tomcat的server.xml,將Mail Resources的資料,加到WebApp的Context下
再來,開啟WebApp中WEB-INF/web.xml,將這個Resources的資源註冊進去
最後,設定Spring的ApplicationContent.xml
而Velocity的用法,可參考Spring Framework上的Velocity & FreeMarker這篇文章
所有的步驟共分成三個部份
首先,開啟Tomcat的server.xml,將Mail Resources的資料,加到WebApp的Context下
<Context …> <Resource name="mail/Session" type="javax.mail.Session" mail.transport.protocol="smtp" mail.smtp.host="smtp.gmail.com" mail.smtp.auth="true" mail.smtp.port="465" mail.smtp.socketFactory.port="465" mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory" mail.smtp.user="yourname@gmail.com" password="yourpassword" mail.smtp.starttls.enable="true"/> </Context>
再來,開啟WebApp中WEB-INF/web.xml,將這個Resources的資源註冊進去
<res-ref-name>mail/Session</res-ref-name> <res-type>javax.mail.Session</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
最後,設定Spring的ApplicationContent.xml
<bean name="mailSession" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/mail/Session"/> </bean> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="session" ref="mailSession"/> </bean> <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"> <property name="from" value="your sender email address" /> </bean> <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean"> <property name="velocityProperties"> <value> resource.loader=class class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader input.encoding=UTF-8 output.encoding=UTF-8 </value> </property> </bean> <bean id="mailService" class="your.MailService"> <property name="mailSender" ref="mailSender" /> <property name="velocityEngine" ref="velocityEngine"/> <property name="mailMessage" ref="mailMessage" /> <property name="orderConfirmationSubject" value="order subject" /> <property name="orderConfirmationTemplateURI" value="cmail_order_confirmation.vm" /> </bean>
而Velocity的用法,可參考Spring Framework上的Velocity & FreeMarker這篇文章
留言