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)是发送短信。
==========================================================================
我们创建一个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
提示已经发送成功啦,我们进邮箱看下我们发送情况。可以看到是发送成功了。所以说明我们的邮件服务搭建成功了。
所以现在看来,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);