## Springboot整合JavaMail实现邮件发送 创建Springboot项目 ### 一. 简单邮件发送 #### 1.在pom.xml中导入依赖 ~~~xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ~~~ #### 2.application.yml中配置 在application中做如下配置 host处如果是qq邮箱就写smtp.qq.com 如果是126邮箱就写smtp.126.com依此类推。 记住:需要进入邮箱,点设置开启客户端的授权 ~~~yaml spring: mail: host: smtp.qq.com username: 877218421@qq.com password: bfgjrbcwhcpybdeg #授权码 ~~~ #### 3.编写接口 ~~~java package cn.hxzy.sendemail.service; public interface SendMailService { void sendMail(); } ~~~ #### 4.编写实现类 ~~~java package cn.hxzy.sendemail.service.impl; import cn.hxzy.sendemail.service.SendMailService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class SendMailServiceImpl implements SendMailService { @Autowired private JavaMailSender javaMailSender; //自动装配JavaMailSender对象 //发送人 private String from = "877218421@qq.com"; //接收人 private String to = "mengshujun_test@163.com"; //标题 private String subject = "Java开发测试邮件"; //正文 private String text = "Java开发测试邮件正文内容"; @Override public void sendMail() { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(to); message.setSubject(subject); message.setText(text); javaMailSender.send(message); } } ~~~ #### 5.编写测试类 ~~~java package cn.hxzy.sendemail; import cn.hxzy.sendemail.service.SendMailService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class SendEmailApplicationTests { @Autowired private SendMailService javaSendMailService; @Test void contextLoads() { javaSendMailService.sendMail(); } } ~~~ ### 二.发送复杂邮件 #### 2.1发送图片与链接 正文内容支持html,如下: 发送链接 ~~~java //正文1 private String text = "<a href='http://www.jd.com'>京东</a>"; ~~~ 发送图片 ~~~java //正文2 private String text = "<img src='https://img10.360buyimg.com/seckillcms/s500x500_jfs/t1/48571/40/20027/27604/632d60b6Eb078e5ff/b1369f32a4334126.jpg' />"; ~~~ 实现类代码: ~~~java package cn.hxzy.sendemail.service.impl; import cn.hxzy.sendemail.service.SendMailService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import javax.mail.internet.MimeMessage; @Service("service2") public class SendMailServiceImpl2 implements SendMailService { @Autowired private JavaMailSender javaMailSender; //发送人 private String from = "877218421@qq.com"; //接收人 private String to = "mengshujun_test@163.com"; //标题 private String subject = "Java开发测试邮件"; //正文 private String text = "<img src='https://img10.360buyimg.com/seckillcms/s500x500_jfs/t1/48571/40/20027/27604/632d60b6Eb078e5ff/b1369f32a4334126.jpg' />"; @Override public void sendMail() { try { MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message); //谁发的 helper.setFrom(from+"(中国银行)"); //message.setFrom(from+"(中国银行)");中国银行将代替from //发给谁 helper.setTo(to); //邮件标题 helper.setSubject(subject); //邮件内容 helper.setText(text, true); javaMailSender.send(message); } catch (Exception e) { e.printStackTrace(); } } } ~~~ #### 2.2 发送附件 在上面基础上设置如下 1、创建MimeMessageHelper对象时增加true参数 2、添加附件 注意addAttachment第一个参数的后缀一定要与你原文件的后缀相同。 ~~~java package cn.hxzy.sendemail.service.impl; import cn.hxzy.sendemail.service.SendMailService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import javax.mail.internet.MimeMessage; import java.io.File; @Service("service2") public class SendMailServiceImpl2 implements SendMailService { @Autowired private JavaMailSender javaMailSender; //发送人 private String from = "877218421@qq.com"; //接收人 private String to = "mengshujun_test@163.com"; //标题 private String subject = "Java开发测试邮件"; //正文 private String text = "<img src='https://img10.360buyimg.com/seckillcms/s500x500_jfs/t1/48571/40/20027/27604/632d60b6Eb078e5ff/b1369f32a4334126.jpg' />"; @Override public void sendMail() { try { MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message,true); //谁发的 helper.setFrom(from+"(中国银行)"); //message.setFrom(from+"(中国银行)");中国银行将代替from //发给谁 helper.setTo(to); //邮件标题 helper.setSubject(subject); //邮件内容 helper.setText(text, true); //添加附件 File f1=new File("D:\\apache-maven-3.5.4-bin.zip"); File f2=new File("D:\\entity-1.0-SNAPSHOT.jar"); helper.addAttachment(f1.getName()+".zip",f1); helper.addAttachment("附件名.jar",f2); javaMailSender.send(message); } catch (Exception e) { e.printStackTrace(); } } } ~~~
02-18
3557
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-14
3355
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)