springboot整合邮件发送
在做项目的过程中,难免会遇到要发送邮件的情况。这里,将springboot与邮件发送整合一下:
一:添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
二:要在配置文件中添加一下配置:
#发送邮件的配置
#使用qq邮箱发送
spring.mail.host=smtp.qq.com
#配置发送者的qq邮箱,也就是:谁来发送
spring.mail.username=12345678@qq.com
#开启POP3之后设置的客户端授权码
#用于客户端邮箱验证身份
spring.mail.password=############
#设置编码
spring.mail.default-encoding=UTF-8
#端口
spring.mail.port=465
#启用sll安全验证
spring.mail.properties.mail.smtp.ssl.enable=true
注意:以上配置中的password是要去邮箱那边开启客户端授权生成的码
这里列出两种发送的邮件的类型,
一种是简单邮件,只有一些文字的,代码如下:
package springbootSendMail.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @ResponseBody @RequestMapping("email") public class Controllers { @Autowired private JavaMailSender javaMailSender; /** * 发送简单邮件,只是一些文字 */ @RequestMapping("simpleEmail") public void sendSimpleMail(){ System.out.println("发送邮件中.."); SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); simpleMailMessage.setFrom("1417734497@qq.com"); //发送方 simpleMailMessage.setTo("1417734497@qq.com");//接收方,这里用同一个邮箱方便于测试 simpleMailMessage.setText("你好"); //发送的内容 simpleMailMessage.setSubject("主题"); //这个是设置邮件的主题 javaMailSender.send(simpleMailMessage); // 发送邮件 } }
另一种是邮件中附带文件的,如下:
package springbootSendMail.controller; import java.io.File; import javax.mail.MessagingException; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @ResponseBody @RequestMapping("email") public class Controllers { @Autowired private JavaMailSender javaMailSender; /** * 发送简单邮件,只是一些文字 *//* @RequestMapping("simpleEmail") public void sendSimpleMail(){ System.out.println("发送邮件中.."); SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); simpleMailMessage.setFrom("1417734497@qq.com"); //发送方 simpleMailMessage.setTo("1417734497@qq.com");//接收方,这里用同一个邮箱方便于测试 simpleMailMessage.setText("你好"); //发送的内容 simpleMailMessage.setSubject("主题"); //这个是设置邮件的主题 javaMailSender.send(simpleMailMessage); // 发送邮件 }*/ /** * 发送带有文件的邮件 */ @RequestMapping("fileEmail") public void sendFileEmail(){ MimeMessage message = null; try { message = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message,true); helper.setFrom("1417734497@qq.com"); helper.setTo("1417734497@qq.com"); helper.setSubject("标题:发送html的内容"); StringBuffer buffer = new StringBuffer(); buffer.append("<font color = 'red'>大家好</font>"); buffer.append("<font color = 'black'>,我们是一家人</font>"); //这个设置cid:image01,要和下面的helper.addInline方法里面的添加要一样 buffer.append("<img src='cid:image01'/>"); //第二个参数是确定该内容是否使用html解析 helper.setText(buffer.toString(), true); //发送的邮件中含有图片显示 FileSystemResource imgFile = new FileSystemResource(new File("D:/2.jpeg")); helper.addInline("image01", imgFile); //添加附件 FileSystemResource filesystemResource = new FileSystemResource(new File("C:/123.pdf")); helper.addAttachment("12345", filesystemResource); javaMailSender.send(message); } catch (MessagingException e) { e.printStackTrace(); } } }
好了,springboot发送邮件到此告一段落,如有不足之处请指出