我们前面看了怎么利用java mail和commons mail发送邮件,这节我们看一下怎么利用spring mail发送邮件。同样,spring mail也是对java mail的接口进行了封装,更方便我们操作。
要利用spring mail发送邮件,我们必须添加activation.jar、mail.jar、spring.jar三个jar包。在spring mail中,发送邮件主要用的类有org.springframework.mail.javamail.JavaMailSenderImpl(主要用来建立与邮件服务器的连接,以及发送邮件),org.springframework.mail.MailMessage(对java mail的message进行封装),org.springframework.mail.javamail.MimeMessageHelper(建立MimeMessage的辅助类)等,类图如下图所示:
下面我们来看看spring mail发送各种邮件的实例。
public class SpringMailSender {
private JavaMailSenderImpl mailSender;
public SpringMailSender() {
mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.qq.com");
mailSender.setUsername("249745552@qq.com");
mailSender.setPassword("linlinjiahong21");
}
// 发送简单的文本文件
public void simpleSend() {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(mailSender.getUsername());
msg.setTo("zhao.jiahong@yahoo.com");
msg.setSubject("spring simple mail");
msg.setText("This is a simple mail sended by mail");
mailSender.send(msg);
}
// 发送带有附件的邮件
public void attachedSend() throws MessagingException {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setFrom(mailSender.getUsername());
helper.setTo("zhao.jiahong@yahoo.com");
helper.setSubject("attached mail");
helper.setText("this is a attached message sended by spring mail!");
FileSystemResource file = new FileSystemResource("F:\\meinv.jpg");
helper.addAttachment("hello", file);
mailSender.send(msg);
}
// 发送HTML邮件
public void htmlSender() throws MessagingException {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setFrom(mailSender.getUsername());
helper.setTo("zhao.jiahong@yahoo.com");
helper.setSubject("html mail");
helper.setText("<body><p>Hello, html Email<img src='cid:meinv'/></p></body>", true);
FileSystemResource file = new FileSystemResource("F:\\meinv.jpg");
helper.addInline("meinv", file);
mailSender.send(msg);
}
public static void main(String[] args) throws MessagingException {
// 发送简单文本邮件
SpringMailSender sender = new SpringMailSender();
sender.simpleSend();
// 发送带有附件的邮件
SpringMailSender sender1 = new SpringMailSender();
sender1.attachedSend();
// 发送HTML邮件
SpringMailSender sender2 = new SpringMailSender();
sender2.htmlSender();
}
}
实际上使用spring mail发送邮件也是非常简单的,甚至比commons mail都简单。在这三种发送邮件实例中,我只是采用了一种经常使用的方式,实际上,在发送邮件的开发中,可能还有其他的写法,我们在此只列举一种,切不可认为只有这一种方式哦!