springboot整合发送E-mail邮件
方式一:
1.pom.xml引入依赖
<!-- e-mail--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
2.application文件配置邮箱smtp信息
spring:
mail:
host: 域名stmp地址
username: 发件邮箱
password: 发件邮箱授权码
3.使用
@Service public class SendMailImpl2 implements SendMailService { // 发送人邮箱地址,必须正确填写否则报错 private String from = ""; // 接收人邮箱地址 private String to = ""; // 标题 private String subject ="测试邮件标题"; // 正文,下面的setText开启html:true即可插入html代码 private String context = "<img src='https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fbkimg.cdn.bcebos.com%2Fpic%2F8326cffc1e178a82b9018131e84f648da97739124247&refer=http%3A%2F%2Fbkimg.cdn.bcebos.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1648176877&t=4c35dcd467ba504ab25b334d3ec7053c'/><a href='http://www.baidu.com'>点击有惊喜</a>" ; @Autowired private JavaMailSender javaMailSender; @Override public void sendMail() throws MessagingException { MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper mh = new MimeMessageHelper(message,true); try { mh.setFrom(from); mh.setTo(to); mh.setSubject(subject); mh.setText(context,true); // 添加附件 File f1 = new File("C:\\Users\\Administrator\\Desktop\\API.txt"); File f2 = new File("C:\\Users\\Administrator\\Desktop\\ecy.jpg"); mh.addAttachment(f1.getName(),f1); mh.addAttachment("②刺元.jpg",f2); } catch (MessagingException e) { e.printStackTrace(); } javaMailSender.send(message); } }
new MimeMessageHelper(message,true); true表示开启附件传送
附件文件必须存在,否则发送会报错
方式二:
简单版:
1.引入依赖,和上面的依赖不同
<!-- e-mail--> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency>
<!-- Hutool-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.19</version>
</dependency>
2.在resource目录下直接创建文件mail.setting
里面写邮箱配置:
# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀> host = xxx.xx.com # 邮件服务器的SMTP端口,可选,默认25 port = 25 # 发件人(自己邮箱,必须正确,否则发送失败) from = xxxx@xx.com # 用户名,默认为发件人,必须正确否则发不了 user = xxxx # 授权码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助) pass = xxxx
3.使用
MailUtil.send(接收人邮箱地址, 邮件标题, 邮件内容, false(是否为html),附件);
其中 是否为html 和 添加附件,如果没有可以不填。