Spring JavaMail的示例
1.接口
1?package?com.xzl.mail;
2?
3?public?interface?OrderManager?{
4?????public?void?placeOrder(String?email);
5?
6?}2.实现
?1?package?com.xzl.mail;
?2?
?3?import?javax.mail.Message;
?4?import?javax.mail.MessagingException;
?5?import?javax.mail.internet.InternetAddress;
?6?import?javax.mail.internet.MimeMessage;
?7?
?8?import?org.springframework.mail.MailException;
?9?import?org.springframework.mail.SimpleMailMessage;
10?import?org.springframework.mail.javamail.JavaMailSender;
11?import?org.springframework.mail.javamail.MimeMessagePreparator;
12?
13?public?class?OrderManagerImpl?implements?OrderManager?{
14?????private?JavaMailSender?mailsender;
15??????private?SimpleMailMessage?message;
16?????
17?????
18??????????public?void?setMessage(SimpleMailMessage?message)
19??????????{
20??????????????this.message?=?message;
21??????????}
22??????????public?void?setMailsender(JavaMailSender?mailsender)?
23??????????{
24??????????????this.mailsender?=?mailsender;
25??????}
26??????????public?void?placeOrder(final?String?email)?{
27?????????????
28??????
29??????????????MimeMessagePreparator?preparator?=?new?MimeMessagePreparator()?{
30?????????????????public?void?prepare(MimeMessage?mimeMessage)?throws?MessagingException?{
31??????????????????????mimeMessage.setRecipient(Message.RecipientType.TO,?
32??????????????????????????????new?InternetAddress(email));
33??????????????????????mimeMessage.setFrom(new?InternetAddress(message.getFrom()));
34??????????????????????/**转换编码为GBK*/
35??????????????????????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?
49?}
50?3.测试用例
?1?package?com.xzl.mail;
?2?
?3?import?org.springframework.beans.factory.BeanFactory;
?4?import?org.springframework.beans.factory.xml.XmlBeanFactory;
?5?import?org.springframework.core.io.ClassPathResource;
?6?import?org.springframework.core.io.Resource;
?7?
?8?public?class?SpringMailTest?{
?9?
10?????/**
11??????*?@param?args
12??????*/
13?????public?static?void?main(String[]?args)?{
14?????????//?TODO?Auto-generated?method?stub
15?????????Resource?res?=?new?ClassPathResource("xxx.xml");
16?????????BeanFactory?bf?=?new?XmlBeanFactory(res);
17?????????OrderManagerImpl?mail?=?(OrderManagerImpl)bf.getBean("orderManager");
18?????????mail.placeOrder("jo.o@163.com");
19?????}
20?
21?}
22?4.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>
34??????</bean>
35??
36??????<bean?id="orderManager"?class="com.xzl.mail.OrderManagerImpl">
37??????????<property?name="mailsender">
38??????????????<ref?bean="mailSender"?/>
39??????????</property>
40??????????<property?name="message">
41??????????????<ref?bean="mailMessage"?/>
42??????????</property>
43??????</bean>
44??
45??</beans>5.完成