﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Denis's Java Library-文章分类-Spring</title><link>http://www.blogjava.net/DenisLing/category/4473.html</link><description>The only documentation is the code itself</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 14:15:05 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 14:15:05 GMT</pubDate><ttl>60</ttl><item><title>使用Spring邮件发送Email</title><link>http://www.blogjava.net/DenisLing/articles/18156.html</link><dc:creator>DenisLing</dc:creator><author>DenisLing</author><pubDate>Fri, 04 Nov 2005 08:13:00 GMT</pubDate><guid>http://www.blogjava.net/DenisLing/articles/18156.html</guid><wfw:comment>http://www.blogjava.net/DenisLing/comments/18156.html</wfw:comment><comments>http://www.blogjava.net/DenisLing/articles/18156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DenisLing/comments/commentRss/18156.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DenisLing/services/trackbacks/18156.html</trackback:ping><description><![CDATA[<div class="postTitle"><a class="postTitle2" id="viewpost1_TitleUrl" href="../../rocky/archive/2005/10/29/17375.html"><br>
</a> 
</div>
<font size="2">Spring提供了一个发送电子邮件的高级抽象层，它向用户屏蔽了底层邮件系统的一些细节，同时负责低层次的代表客户端的
资源处理。Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender和
封装了简单邮件的属性如from, to,cc, subject, text的值对象叫做SimpleMailMessage。 <br>首先:我们定义一个发送邮件的接口:IMailManager.java <br>/* <br>* IMailManager.java <br>* 
Copyright 2005, All rights reserved. <br>*/ <br>package test.mail.manager; 
<br><br>import test.common.logic.IManager; <br>import test.model.Order; 
<br><br>/** <br>* Note:this interface mainly deal with the sendOrder <br>*/ 
<br>public interface IMailManager extends IManager{ <br><br>void sendOrder(Order 
order); <br>} <br><br>然后实现这个接口:MailManager.java <br>/* <br>* MailManager.java 
<br>* Copyright 2005, All rights reserved. <br>*/ <br>package test.mail.manager; 
<br><br>import org.springframework.mail.MailException; <br>import 
org.springframework.mail.MailSender; <br>import 
org.springframework.mail.SimpleMailMessage; <br><br>import 
test.common.logic.impl.Manager; <br>import test.model.Order; <br><br>/** <br>* 
Note:the implements of IMailManager <br>*/ <br>public class MailManager extends 
Manager implements IMailManager { <br><br>private MailSender mailSender; 
<br>private SimpleMailMessage message; <br><br>public void sendOrder(Order 
order) { <br>SimpleMailMessage mailMessage = new 
SimpleMailMessage(this.message); 
<br>mailMessage.setTo(order.getUser().getEmail()); 
<br>mailMessage.setText("Dear" <br>+ order.getUser().getFirstName() <br>+ 
order.getUser().getLastName() <br>+ ", thank you for placing order. Your order 
code is " <br>+ order.getCode()); <br>try{ <br>mailSender.send(mailMessage); 
<br>}catch(MailException ex) { <br>System.err.println(ex.getMessage()); <br>} 
<br><br>} <br><br>/** <br>* @param mailSender The mailSender to set. <br>*/ 
<br>public void setMailSender(MailSender mailSender) { <br>this.mailSender = 
mailSender; <br>} <br>/** <br>* @param message The message to set. <br>*/ 
<br>public void setMessage(SimpleMailMessage message) { <br>this.message = 
message; <br>} <br>} <br><br>然后我们在Action 里面调用: SendMailAction.java <br>/* <br>* 
SendMail.java <br>* Copyright 2005, All rights reserved. <br>*/ <br>package 
test.mail.action; <br><br>import test.common.action.BaseAction; <br>import 
test.mail.manager.IMailManager; <br>import test.order.dao.IOrderDao; <br>import 
test.model.Order; <br><br><br>/** <br>* Note: SendMailAction <br>*/ <br>public 
class SendMailAction extends BaseAction { <br>private IMailManager mailManager; 
<br>private IOrderDao orderDao; <br>private long orderId; <br><br>public String 
execute() throws Exception { <br>Order order = orderDao.getOrder(orderId); 
<br>mailManager.sendOrder(order); <br>return SUCCESS; <br>} <br><br><br>/** 
<br>* @return Returns the mailManager. <br>*/ <br>public IMailManager 
getMailManager() { <br>return mailManager; <br>} <br>/** <br>* @param 
mailManager The mailManager to set. <br>*/ <br>public void 
setMailManager(IMailManager mailManager) { <br>this.mailManager = mailManager; 
<br>} <br><br>/** <br>* @return Returns the orderDao. <br>*/ <br>public 
IOrderDao getOrderDao() { <br>return orderDao; <br>} <br>/** <br>* @param 
orderDao The orderDao to set. <br>*/ <br>public void setOrderDao(IOrderDao 
orderDao) { <br>this.orderDao = orderDao; <br>} <br>/** <br>* @return Returns 
the orderId. <br>*/ <br>public long getOrderId() { <br>return orderId; <br>} 
<br>/** <br>* @param orderId The orderId to set. <br>*/ <br>public void 
setOrderId(long orderId) { <br>this.orderId = orderId; <br>} <br>} 
<br><br>最后的就是配置了.在ApplicationContext.xml文件里加上如下的内容: <br>&lt;bean id="mailSender" 
class="org.springframework.mail.javamail.JavaMailSenderImpl"&gt; 
<br>&lt;property 
name="host"&gt;&lt;value&gt;smtp服务器&lt;/value&gt;&lt;/property&gt; 
<br>&lt;property 
name="username"&gt;&lt;value&gt;用户名&lt;/value&gt;&lt;/property&gt; 
<br>&lt;property 
name="password"&gt;&lt;value&gt;密码&lt;/value&gt;&lt;/property&gt; 
<br>/**如果服务器要求验证,加上此**/ <br>&lt;property name="javaMailProperties"&gt; 
<br>&lt;props&gt; <br>&lt;prop key="mail.smtp.auth"&gt;true&lt;/prop&gt; 
<br>&lt;prop key="mail.smtp.timeout"&gt;25000&lt;/prop&gt; <br>&lt;/props&gt; 
<br>&lt;/property&gt; <br>&lt;/bean&gt; <br><br>&lt;bean id="mailMessage" 
<br>class="org.springframework.mail.SimpleMailMessage"&gt; <br>&lt;property 
name="from"&gt; <br>&lt;value&gt;你的电子邮件地址&lt;/value&gt; <br>&lt;/property&gt; 
<br>&lt;property name="subject"&gt; <br>&lt;value&gt;邮件标题&lt;/value&gt; 
<br>&lt;/property&gt; <br>&lt;/bean&gt; <br><br><br>&lt;bean id="mailManager" 
class=" test.mail.manager.MailManager" &gt; <br>&lt;property 
name="mailSender"&gt; <br>&lt;ref bean="mailSender" /&gt; <br>&lt;/property&gt; 
<br>&lt;property name="message"&gt; <br>&lt;ref bean="mailMessage" /&gt; 
<br>&lt;/property&gt; <br>&lt;/bean&gt; <br>在对应的action配置文件中加入: <br>&lt;bean 
id="SendMailAction" <br>class=" test.mail.action.SendMailAction" 
singleton="false" &gt; <br>&lt;property name="mailManager"&gt; <br>&lt;ref 
bean="mailManager" /&gt; <br>&lt;/property&gt; <br>&lt;property 
name="orderDao"&gt; <br>&lt;ref bean="orderDao"/&gt; <br>&lt;/property&gt; 
<br>&lt;/bean&gt; <br><br>在xwork配置文件中: <br>&lt;action name="sendMailBG" 
class="SendMailAction"&gt; <br>&lt;interceptor-ref name="defaultStack" /&gt; 
<br>&lt;result name="success" type="freemarker"&gt;success.ftl&lt;/result&gt; 
<br>&lt;result name="error" type="freemarker"&gt;error.ftl&lt;/result&gt; 
<br>&lt;/action&gt; </font><br>
<img src ="http://www.blogjava.net/DenisLing/aggbug/18156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DenisLing/" target="_blank">DenisLing</a> 2005-11-04 16:13 <a href="http://www.blogjava.net/DenisLing/articles/18156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>