Spring中是如何发送Email的?---《Spring实战》系列 09

通过邮件进行沟通已经是现代非常常见的通信方式了,那么作为强大的Spring框架,当然也提供了发送邮件的功能,我们一起来看看它是如何实现的。

“使用Spring发送Email”这一章 主要讲了三个部分:1.基本的发送邮件功能 2.构建丰富内容的Email信息 3.使用模板生成Email。

01:基本的发送邮件功能

我们都知道,发送邮件是需要邮件服务器的,一封邮件首先发送到一个邮件服务器上,然后这个邮件服务器再发送到另一个邮件服务器上,收件人就可以读邮件了。Spring中有一个模块是Spring Email, 它的核心组件是MailSender接口,这个接口负责把Email发送给邮件服务器,然后再完成后续操作。

因此,我们第一步就是配置一个邮件发送器。刚刚提到的MailSender接口有一个实现类JavaMailSenderImpl,我们只需要把这个实现类配置成一个bean,就可以使用它发送邮件了。

@Bean
public MailSender mailSender(Environment env){
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(env.getProperty(“mailserver.host”));
mailSender.setPort(env.getProperty(“mailserver.port”));
mailSender.setUsername(env.getProperty(“mailserver.username”));
mailSender.setUsername(env.getProperty(“mailserver.password”));
return mailSender;
}

第二步就是装配和使用这个邮件发送器了。使用@Autowired注解,将JavaMailSender接口装备到需要的代码中就可以了。

public void senderSimpleSpittleEmail(String to, Spittle,spittle){
SimpleMailMessage message = new SimpleMailMessage(); //构造信息
String spitteName = spittle.getSpitter().getFullName();
message.setForm(“noreply@spitte.com”);
message.setTo(to);
message.setSubject();
message.setTest(); // 设置消息文本
message.send(message); // 发送Email
}

02:构建丰富内容的Email信息

一般发邮件除了主要信息内容以外,有时也需要添加附件,而Spring的Email功能就提供了这种功能,并且可以使用HTML来美化消息体的内容。一般来说,为了发送multipart类型的Email,需要创建一个MIME的消息,可以从邮件发送器的createMimeMessage()方法开始:

MimeMessage message = mailSender.createMimeMessage();

同时可以使用Spring提供的MimeMessageHelper来指定收件人和发件人地址,主题,内容及附件。

MimeMessageHelper helper = new MimeMessageHelper (message,true);

String spitterName = spittle.getSpitter().getFullName();
helper.setFrom(“noreply@spitter.com”);
helper.setTo(to);
helper.setSubject();
helper.setText();

FileSystemResource couponImage = new FileSystemResource(“图片文件路径”) ;// 添加附件内容
helper.addAttachment (“文件名”,coupinImage);

截止到目前为止,就可以发送带有附件的邮件了。

03 :使用模板生成Email

在这里Spring提供了两种模板,一是Velocity,二是Thymeleaf, 这两种模板可以自由的切换。在这里就不详细展开说明了。

其实除了Spring提供的这种发送邮件的方式,Apache也提供了相当丰富的发送邮件的组件类,可以实现发送邮件的功能。比如我们项目中使用的就是HtmlEmail这个组件类,它所能提供的功能其实和Spring提供的相差不多。技术百变不离其宗,主要就是其中几个核心因素。只要掌握了核心要素,那么实现功能就是妥妥的了。

今天的内容就分享到这,我们下期再会~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值