閔毓
          http://www.eshoo.com.cn 歡迎來到異客中國
          posts - 49,comments - 97,trackbacks - 0

            Spring提供了一個發送電子郵件的高級抽象層,它向用戶屏蔽了底層郵件系統的一些細節,同時負責低層次的代表客戶端的資源處理。Spring郵件抽象層的主要包為org.springframework.mail。它包括了發送電子郵件的主要接口MailSender和 封裝了簡單郵件的屬性如from, to,cc, subject, text的值對象叫做SimpleMailMessage。
          1、我們定義一個發送郵件的接口:OrderManager.java

          1 public interface OrderManager extends BaseManager{
          2 /**
          3 *email,要發送的郵件地址;
          4 *Code:激活碼
          5 */
          6      public void placeOrder(String email);
          7 }

          2、我們需要對該接口進行實現的方法:OrderManagerImpl.java

           1 import javax.mail.Message;
           2 import javax.mail.MessagingException;
           3 import javax.mail.internet.InternetAddress;
           4 import javax.mail.internet.MimeMessage;
           5 import org.springframework.mail.MailException;
           6 import org.springframework.mail.javamail.JavaMailSender;
           7 import org.springframework.mail.javamail.MimeMessagePreparator;
           8 import service.OrderManager;
           9  
          11 public class OrderManagerImpl extends BaseManagerImpl implements OrderManager {
          12 
          13 private JavaMailSender mailsender;
          14 private MyMailMessage message;
          15 
          16 
          17     public void setMessage(CityMailMessage message)
          18     {
          19         this.message = message;
          20     }
          21     public void setMailsender(JavaMailSender mailsender) {
          22         this.mailsender = mailsender;
          23     }
          24     public void placeOrder(final String email) {
          25         
          26 
          27         MimeMessagePreparator preparator = new MimeMessagePreparator() {
          28             public void prepare(MimeMessage mimeMessage) throws MessagingException {
          29                 mimeMessage.setRecipient(Message.RecipientType.TO, 
          30                         new InternetAddress(email));
          31                 mimeMessage.setFrom(new InternetAddress(message.getFrom()));
          32                 /**轉換編碼為GBK*/
          33                 mimeMessage.setSubject(message.getSubject(),"GBK");
          36                 mimeMessage.setText(email+"<br>"+message.getSubject()+message.getText(),"GBK");
          37                 
          38             }
          39         };
          40         try{
          41             mailsender.send(preparator);
          42         }
          43         catch(MailException ex) {
          44             //log it and go on
          45             System.err.println(ex.getMessage());            
          46         }
          47     }
          48 }

          3、spring配置發送email的applicationContext-email.xml

           1 <?xml version="1.0" encoding="UTF-8"?>
           2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
           3     "http://www.springframework.org/dtd/spring-beans.dtd">
           4 
           5 <beans>
           6     <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
           7         <property name="host">
           8             <value>smtp.163.com</value>
           9         </property>
          10         <property name="username">
          11             <value>username</value>
          12         </property>
          13         <property name="password">
          14             <value>password</value>
          15         </property>
          16         <property name="javaMailProperties">
          17             <props>
          18                 <prop key="mail.smtp.auth">true</prop>
          19                 <prop key="mail.smtp.timeout">25000</prop>
          20             </props>
          21         </property>
          22     </bean>
          23 
          24     <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
          25         <property name="from">
          26             <value>Email</value>
          27         </property>
          28         <property name="subject">
          29             <value>標題</value>
          30         </property>
          31         <property name="text">
          32             <value>內容</value>
          33         </property>
          46     </bean>
          47 
          48     <bean id="orderManager" class="cn.cityyouth.service.impl.OrderManagerImpl">
          49         <property name="mailsender">
          50             <ref bean="mailSender" />
          51         </property>
          52         <property name="message">
          53             <ref bean="mailMessage" />
          54         </property>
          55     </bean>
          56 
          57 </beans>

          4、最后配置自己的jsp頁面以及action

           1 package cn.cityyouth.web.action;
           2 
           3 import javax.servlet.http.HttpServletRequest;
           4 import javax.servlet.http.HttpServletResponse;
           5 import org.apache.struts.action.ActionForm;
           6 import org.apache.struts.action.ActionForward;
           7 import org.apache.struts.action.ActionMapping;
           8 import org.apache.struts.action.ActionMessage;
           9 import org.apache.struts.action.ActionMessages;
          10 import com.test.service.OrderManager;
          11 
          12 public class SendMailAction extends BaseAction {
          13 
          14     /**
          15      * Method execute
          16      * 
          17      * @param mapping
          18      * @param form
          19      * @param request
          20      * @param response
          21      * @return ActionForward
          22      */
          23     public ActionForward execute(ActionMapping mapping, ActionForm form,
          24             HttpServletRequest request, HttpServletResponse response) {
          25         OrderManager omi=(OrderManager)this.getBean("orderManager");
          26         String useremail="123@163.com";
          27          omi.placeOrder(useremail);
          28        }
          29 }

          到此所有的開發以結束。

          Sring郵件抽象層的主要包是:org.springframework.mail 包。它包含叫MailSender為發送郵件的核心接口和包含簡單郵件屬性例如from,to,cc,subject,text叫SimpleMailMessage的值對象. 這個包也包含一個檢查異常的層次,它支持一個更高級別的抽象超過低級別的郵件系統異常伴隨根異常存在MailException. 請參考JavaDocs為更多的信息雜郵件異常層次。

          spring in action also provides a sub-interface of MailSender for specialized JavaMail features such as MIME messages, namely org.springframework.mail.javamail.JavaMailSender It also provides a callback interface for preparation of JavaMail MIME messages, namely org.springframework.mail.javamail.MimeMessagePreparator

          Spring也支持一個MailSender的專用于JavaMail特征例如MIME消息子接口,命名為org.springframework.javamail.JavaMailerSener。它也支持一個為JavaMail MIME信息的準備回調接口,命名為org.springframework.mail.JavaMail.MimeMessagePreparator.
           

          posted on 2005-11-04 17:49 閔毓 閱讀(266) 評論(0)  編輯  收藏 所屬分類: Spring in action
          主站蜘蛛池模板: 抚远县| 定安县| 彭水| 浦北县| 太湖县| 宝兴县| 平山县| 晋城| 福安市| 平和县| 浦江县| 全南县| 大庆市| 广宗县| 收藏| 礼泉县| 安远县| 遂昌县| 高淳县| 台南市| 旺苍县| 宝清县| 清远市| 溧阳市| 商河县| 屏山县| 收藏| 清流县| 兴安县| 堆龙德庆县| 名山县| 海林市| 大石桥市| 蒙阴县| 临澧县| 永修县| 鹿泉市| 霍州市| 汉阴县| 山东省| 额敏县|