分享
 
 
 

使用Spring邮件抽象层发送简单邮件

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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也支持一个MailSender的专用于JavaMail特征例如MIME消息子接口,命名为org.springframework.javamail.JavaMailerSener。它也支持一个为JavaMail MIME信息的准备回调接口,命名为org.springframework.mail.JavaMail.MimeMessagePreparator.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有