五、springboot 简单优雅是实现邮件服务

file

MailServiceImpl 中代码

@Service

@Slf4j

public class MailServiceImpl implements MailService{

@Autowired

private JavaMailSender mailSender;

@Value(“${mail.from}”)

private String mailFrom;

@Override

public void sendSimpleMail(String mailTo) {

SimpleMailMessage message=new SimpleMailMessage();

message.setFrom(mailFrom);

message.setTo(mailTo);

message.setSubject(“simple mail”);

message.setText(“hello world”);

mailSender.send(message);

log.info(“邮件已经发送”);

}

}

这里我们就先简单的测试一下看看邮件能不能发送。mailFrom 是发件人,mailTo 是收件人。message.setSubject()设置邮件主题。message.setText()设置邮件内容。

mailSender.send(message)是发送短信。

controller层

==========================================================================

我们创建一个MailController类。代码如下:

@RestController

@RequestMapping(“/mail”)

public class MailController {

@Autowired

private MailService mailService;

@RequestMapping(value = “/send”,method = RequestMethod.GET)

public String sendMail(@RequestParam(value = “userName”)String userName){

mailService.sendSimpleMail(userName);

return “success”;

}

}

可以看到就一个发送的接口。很简单,参数传过来接收人的邮箱就好了。

测试

=================================================================

到此为止,我们邮件服务的demo 就已经搭建好了。我们接下来测试测试一下。我们启动项目。然后调接口

http://localhost:9090/zlflovemm/mail/send?userName=1303123974@qq.com

file

提示已经发送成功啦,我们进邮箱看下我们发送情况。可以看到是发送成功了。所以说明我们的邮件服务搭建成功了。

file

所以现在看来,springboot 集成邮件服务是非常简单的,配置邮件服务器,就可以直接使用啦。

发送附件

===================================================================

有时候我们发送邮件不仅仅发送内容,还需要发送附件,那怎么实现呢。其实也很简单。那些配置还是不变。我们在service 层。写一个sendMail方法。如下

@Override

public void sendMail(String mailTo) {

MimeMessage message=mailSender.createMimeMessage();

MimeMessageHelper helper = null;

try {

helper = new MimeMessageHelper(message, true);

helper.setFrom(mailFrom);

helper.setTo(mailTo);

helper.setSubject(“simple mail”);

helper.setText(“hello world”, true);

FileSystemResource file = new FileSystemResource(new File(“E:\myself\test.xls”));

String fileName = file.getFilename();

helper.addAttachment(fileName, file);

mailSender.send(message);

log.info(“邮件已经发送”);

} catch (MessagingException e) {

log.error(“{}”,e);

}

}

可以看到和我们开始测试的时候,有一点不同。这里先

MimeMessage message=mailSender.createMimeMessage();

MimeMessage 比 SimpleMailMessage 功能更强大,可以发送附件,也可以将内容转成html 格式发送。所以一般实际使用的时候都使用MimeMessage。

另外发送附件,还需要借助MimeMessageHelper 。MimeMessageHelper是辅助MimeMessage的。

helper.setFrom(mailFrom);

helper.setTo(mailTo);

helper.setSubject(“simple mail”);

helper.setText(“hello world”, true);

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值