Spring提供了一个发送电子邮件的高级抽象层,它向用户屏蔽了底层邮件系统的一些细节,同时负责低层次的代表客户端的资源处理。Spring邮件抽象层的主要包为org.springFramework.mail。它包括了发送电子邮件的主要接口MailSender和封装了简单邮件的属性如from,to,cc,subject,text的值对象叫做SimpleMailMessage。
1、我们定义一个发送邮件的接口:OrderManager.Java
1publicinterfaceOrderManagerextendsBaseManager{
2 /**
3 *email,要发送的邮件地址;
4 *Code:激活码
5 */
6 publicvoidplaceOrder(Stringemail);
7}
2、我们需要对该接口进行实现的方法:OrderManagerImpl.java
1importjavax.mail.Message;
2importjavax.mail.MessagingException;
3importjavax.mail.internet.InternetAddress;
4importjavax.mail.internet.MimeMessage;
5importorg.springframework.mail.MailException;
6importorg.springframework.mail.JavaMail.JavaMailSender;
7importorg.springframework.mail.javamail.MimeMessagePreparator;
8importservice.OrderManager;
9
11publicclassOrderManagerImplextendsBaseManagerImplimplementsOrderManager{
12
13 privateJavaMailSendermailsender;
14 privateMyMailMessagemessage;
15
16
17 publicvoidsetMessage(CityMailMessagemessage)
18 {
19 this.message=message;
20 }
21 publicvoidsetMailsender(JavaMailSendermailsender){
22 this.mailsender=mailsender;
23 }
24 publicvoidplaceOrder(finalStringemail){
25
26
27 MimeMessagePreparatorpreparator=newMimeMessagePreparator(){
28 publicvoidprepare(MimeMessagemimeMessage)throwsMessagingException{
29 mimeMessage.setRecipient(Message.RecipientType.TO,
30 newInternetAddress(email));
31 mimeMessage.setFrom(newInternetAddress(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(MailExceptionex){
44 //logitandgoon
45 System.err.println(ex.getMessage());
46 }
47}
48}
3、spring配置发送email的applicationContext-email.XML
1<?xmlversion="1.0"encoding="UTF-8"?>
2<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
3"http://www.springframework.org/dtd/spring-beans.dtd">
4
5<beans>
6 <beanid="mailSender"class="org.springframework.mail.javamail.JavaMailSenderImpl">
7 <propertyname="host">
8 <value>smtp.163.com</value>
9 </property>
10 <propertyname="username">
11 <value>username</value>
12 </property>
13 <propertyname="password">
14 <value>password</value>
15 </property>
16<propertyname="javaMailProperties">
17 <props>
18 <propkey="mail.smtp.auth">true</prop>
19 <propkey="mail.smtp.timeout">25000</prop>
20 </props>
21</property>
22</bean>
23
24<beanid="mailMessage"class="org.springframework.mail.SimpleMailMessage">
25 <propertyname="from">
26 <value>Email</value>