如何用Spring发送邮件

本文主要演示如何用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("邮件发送成功!");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值