spring boot(16)-mail发邮件
上一篇讲了如何处理异常,并且异常最终会写入日志。但是日志是写在服务器上的,我们无法及时知道。如果能够将异常发送到邮箱,我们可以在第一时间发现这个异常。当然,除此以外,还可以用来给用户发验证码以及各种离线消息等
pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
application.properties
#使用163.com的邮件服务器 spring.mail.host=smtp.163.com #在163.com注册的用户名,注意这里不需要@163.com后缀 spring.mail.username=****** #在163.com注册的密码 spring.mail.password=******
发送简单邮件
@RestController public class SampleController { @Autowired private JavaMailSender javaMailSender; @RequestMapping("/mail") public String sendMail() { SimpleMailMessage message = new SimpleMailMessage(); //发件人 message.setFrom("******@163.com"); //收件人 message.setTo("******@qq.com"); message.setSubject("邮件标题"); message.setText("邮件内容"); javaMailSender.send(message); return "发送成功"; } }
发送含附件的邮件
@Autowired private JavaMailSender javaMailSender; @RequestMapping("/mail") public String sendMail() throws MessagingException { //需要创建一个MimeMessageHelper对象,相关参数和简单邮件类似 MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom("******@163.com"); helper.setTo("******@qq.com"); helper.setSubject("邮件标题"); //将邮件内容设置为html格式 helper.setText("<html><body><h1>hello world</h1></body></html>",true); //定义文件,这是java.main.resources也就是classpach路径下的文件abc.png ClassPathResource file = new ClassPathResource("/abc.png"); //添加附件文件, 设置文件名为abc.png helper.addAttachment("abc.png", file); javaMailSender.send(mimeMessage); return "发送成功"; }