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 }
