Spring Boot实现邮件发送
引入jar包
<!--邮件发送功能依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置properties(yml)
spring:
mail:
protocol: smtp #smtp是邮件发送协议,pop3和imap是邮件接收协议。因为我们要发送邮件,因此是smtp
host: smtp.qq.com #邮件发送服务器的主机,这里采用的是QQ邮箱来发送邮件
port: 465 #邮件发送服务器的端口
auth: true #一般情况下,发送邮件都是要进行验证
username: 1239474058@qq.com #邮件发送服务器的用户名
password: mptwyvufdggcbgab #此处不是账户密码而是权限码(可以在邮箱中开启服务得到)
properties: #由于smtp属于变种协议,需要申明ssl
mail:
smtp:
ssl:
enable: true
Controller实现
只发送信息
public String send(){
//建立邮件消息
SimpleMailMessage mainMessage = new SimpleMailMessage();
//发送者
mainMessage.setFrom("xxxxx@126.com");
//接收者
mainMessage.setTo("xxxx@qq.com");
//发送的标题
mainMessage.setSubject("测试邮件");
//发送的内容
mainMessage.setText("hello world");
jms.send(mainMessage);
return "1";
}
发送带附件的邮件
常规使用中,可以将文件转为流传送
MimeMessage mailMessage = javaMailSender.createMimeMessage();
//开启带附件true
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
messageHelper.setFrom("1239474058@qq.com");//发送者.
messageHelper.setTo("849732277@qq.com");//接收者.
messageHelper.setSubject("测试邮件");//邮件主题.
messageHelper.setText(emailText);//邮件内容.
//文件一
FileSystemResource file1 = new FileSystemResource(new File("C:\\1.jpg"));
FileSystemResource file2= new FileSystemResource(new File("C:\\2.jpg"));
messageHelper.addAttachment("附件-1.jpg", file1);
messageHelper.addAttachment("附件-2.jpg", file2);
javaMailSender.send(mailMessage);//发送邮件
假如使用了Thymeleaf模板引擎,可以发送html
@Autowired
private TemplateEngine templateEngine;
MimeMessage mailMessage = javaMailSender.createMimeMessage();
// context 对象用于注入要在模板上渲染的信息
Context context = new Context();
context.setVariable("adminList",list);
String emailText = templateEngine.process("testMain",context);
//开启带附件true
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
messageHelper.setFrom("1239474058@qq.com");//发送者.
messageHelper.setTo("849732277@qq.com");//接收者.
messageHelper.setSubject("测试邮件");//邮件主题.
messageHelper.setText(emailText,true);//邮件内容.
//文件一
FileSystemResource file1 = new FileSystemResource(new File("C:\\1.jpg"));
FileSystemResource file2= new FileSystemResource(new File("C:\\2.jpg"));
messageHelper.addAttachment("附件-1.jpg", file1);
messageHelper.addAttachment("附件-2.jpg", file2);
javaMailSender.send(mailMessage);//发送邮件
其中setText中加true是开启html传送,会识别html标签