本文主要演示如何用Spring进行对
简单文本邮件、
含附件和嵌入式资源的邮件的发送,以及如何
批量发送邮件等。
在演示之前,必须要引入相关的类库,这里用到的类库包括:
spring-context.jar
mail.jar
spring-core.jar
activation.jar
commons-logging.jar
由于本文主要是介绍Spring发送邮件的基本操作,所以就不采用依赖注入的方式了,如要使用只要对着代码自己配置就行了。
一、发送一封简单的文本邮件
public void testMailSimpleMessage() {
JavaMailSenderImpl senderimpl = new JavaMailSenderImpl();
//设定邮件的字符编码
senderimpl.setDefaultEncoding("utf-8");
//设定mail server
senderimpl.setHost("smtp.163.com");//网易的邮件服务器
//设置邮箱的登录帐号及密码
senderimpl.setUsername("waltertan1988@163.com");
senderimpl.setPassword("123456");
//这部分是必须的
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.timeout", "25000");//这部分可选
senderimpl.setJavaMailProperties(properties);
//建立邮件消息
SimpleMailMessage mailmessage = new SimpleMailMessage();
//设置收件人及发件人
mailmessage.setTo("347467161@qq.com");
mailmessage.setFrom("waltertan1988@163.com");//发件人必须与邮箱的登录帐号一致
//设置邮件主题和内容
mailmessage.setSubject("主题-测试用Spring发送简单邮件");
mailmessage.setText("这是内容部分");
//发送邮件
senderimpl.send(mailmessage);
System.out.println("邮件发送成功!");
}
二、 发送含附件和内入式资源的邮件
注:内嵌式资源可能是你在信件中希望使用的图像,或者样式表,但是又不想把它们作为附件。
public void testMailWithAttachFileAndInlineResources() throws MessagingException {
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setDefaultEncoding("utf-8");
sender.setHost("smtp.163.com");
sender.setUsername("waltertan1988@163.com");
sender.setPassword("123456");
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.timeout", "25000");
sender.setJavaMailProperties(properties);
MimeMessage message = sender.createMimeMessage();
// 标记true表示发送的邮件支持附件和内嵌式资源
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo("347467161@qq.com");
helper.setFrom("waltertan1988@163.com");
helper.setText("<html><body>Spring——测试发送含附件及内嵌式资源的邮件<br/><img src='cid:identifier1234'></body></html>", true);
// 指定一个文件作为内嵌式资源(或附件)
FileSystemResource res1 = new FileSystemResource(new File("d:/Stephy.JPG"));
//将内嵌式资源标记为“identifier1234”,在邮件内容中的HTML元素使用时它作为该资源的引用
helper.addInline("identifier1234", res1);
// 添加邮件包含的附件
helper.addAttachment("stephy1.jpg", res1);
helper.addAttachment("stephy2.jpg", res1);
sender.send(message);
System.out.println("邮件发送成功!");
}
三、批量发送邮件
public void testBatchMail() throws MessagingException{
JavaMailSenderImpl sender = new JavaMailSenderImpl();
//sender.setDefaultEncoding("utf-8");
sender.setHost("smtp.163.com");
sender.setUsername("waltertan1988@163.com");
sender.setPassword("123456");
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.timeout", "25000");
sender.setJavaMailProperties(properties);
MimeMessage message = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
//多个收件人之间用,分隔
InternetAddress[] recipients = new InternetAddress().parse("347467161@qq.com,waltertan1988@163.com");
message.setRecipients(Message.RecipientType.TO,recipients);
helper.setFrom("waltertan1988@163.com");
helper.setText("<html><body>Spring——测试批量发送邮件<br/><img src='cid:identifier1234'></body></html>", true);
FileSystemResource res1 = new FileSystemResource(new File("d:/Stephy.JPG"));
helper.addInline("identifier1234", res1);
helper.addAttachment("stephy1.jpg", res1);
helper.addAttachment("stephy2.jpg", res1);
sender.send(message);
System.out.println("邮件发送成功!");
}
在演示之前,必须要引入相关的类库,这里用到的类库包括:
spring-context.jar
mail.jar
spring-core.jar
activation.jar
commons-logging.jar
由于本文主要是介绍Spring发送邮件的基本操作,所以就不采用依赖注入的方式了,如要使用只要对着代码自己配置就行了。
一、发送一封简单的文本邮件
public void testMailSimpleMessage() {
JavaMailSenderImpl senderimpl = new JavaMailSenderImpl();
//设定邮件的字符编码
senderimpl.setDefaultEncoding("utf-8");
//设定mail server
senderimpl.setHost("smtp.163.com");//网易的邮件服务器
//设置邮箱的登录帐号及密码
senderimpl.setUsername("waltertan1988@163.com");
senderimpl.setPassword("123456");
//这部分是必须的
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.timeout", "25000");//这部分可选
senderimpl.setJavaMailProperties(properties);
//建立邮件消息
SimpleMailMessage mailmessage = new SimpleMailMessage();
//设置收件人及发件人
mailmessage.setTo("347467161@qq.com");
mailmessage.setFrom("waltertan1988@163.com");//发件人必须与邮箱的登录帐号一致
//设置邮件主题和内容
mailmessage.setSubject("主题-测试用Spring发送简单邮件");
mailmessage.setText("这是内容部分");
//发送邮件
senderimpl.send(mailmessage);
System.out.println("邮件发送成功!");
}
二、 发送含附件和内入式资源的邮件
注:内嵌式资源可能是你在信件中希望使用的图像,或者样式表,但是又不想把它们作为附件。
public void testMailWithAttachFileAndInlineResources() throws MessagingException {
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setDefaultEncoding("utf-8");
sender.setHost("smtp.163.com");
sender.setUsername("waltertan1988@163.com");
sender.setPassword("123456");
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.timeout", "25000");
sender.setJavaMailProperties(properties);
MimeMessage message = sender.createMimeMessage();
// 标记true表示发送的邮件支持附件和内嵌式资源
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo("347467161@qq.com");
helper.setFrom("waltertan1988@163.com");
helper.setText("<html><body>Spring——测试发送含附件及内嵌式资源的邮件<br/><img src='cid:identifier1234'></body></html>", true);
// 指定一个文件作为内嵌式资源(或附件)
FileSystemResource res1 = new FileSystemResource(new File("d:/Stephy.JPG"));
//将内嵌式资源标记为“identifier1234”,在邮件内容中的HTML元素使用时它作为该资源的引用
helper.addInline("identifier1234", res1);
// 添加邮件包含的附件
helper.addAttachment("stephy1.jpg", res1);
helper.addAttachment("stephy2.jpg", res1);
sender.send(message);
System.out.println("邮件发送成功!");
}
三、批量发送邮件
public void testBatchMail() throws MessagingException{
JavaMailSenderImpl sender = new JavaMailSenderImpl();
//sender.setDefaultEncoding("utf-8");
sender.setHost("smtp.163.com");
sender.setUsername("waltertan1988@163.com");
sender.setPassword("123456");
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.timeout", "25000");
sender.setJavaMailProperties(properties);
MimeMessage message = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
//多个收件人之间用,分隔
InternetAddress[] recipients = new InternetAddress().parse("347467161@qq.com,waltertan1988@163.com");
message.setRecipients(Message.RecipientType.TO,recipients);
helper.setFrom("waltertan1988@163.com");
helper.setText("<html><body>Spring——测试批量发送邮件<br/><img src='cid:identifier1234'></body></html>", true);
FileSystemResource res1 = new FileSystemResource(new File("d:/Stephy.JPG"));
helper.addInline("identifier1234", res1);
helper.addAttachment("stephy1.jpg", res1);
helper.addAttachment("stephy2.jpg", res1);
sender.send(message);
System.out.println("邮件发送成功!");
}