springboot整合mail邮箱
sun公司提供了javaMail用来实现邮件发送,但是配置繁琐,spring中提供了javaMailSender用来简化邮件配置,springboot则提供了MailSendAutoConfiguration对邮件发送做了进一步的简化.
下面我们以QQ邮箱为例,进行发送操作
废话以后补充
1.登录QQ邮箱,进入设置
2.在账户选项卡中找到POP3/SMTP服务,点击开启按钮
3.(注意)下面我们获得一下授权码,因为项目需要发送邮箱的账户和密码,我们不能因为编写项目将自己账户的密码编写在项目中,所以这里的授权码就是代替密码的一个编码,
4.拿到授权码后,准备工作就完成了。
------------------------------------------------------------------
下面开始搭建环境
1.加入依赖
<!--邮箱--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
2.配置application.yml
spring:mail:host: smtp.qq.comport: 465username: 发送邮箱password: 授权码default-encoding: UTF-8properties:mail:smtp:socketFactory:class: javax.net.ssl.SSLSocketFactorydebug: true
3.发送一个最简单的邮件
@Service
public class MailService {@ResourceJavaMailSender javaMailSender;/*** 最简单的邮件发送* @param from 发送方* @param to 接收方* @param cc 第三方(非必填)* @param subject 标题* @param content 内容*/public void sendSimpleMail(String from,String to,String cc,String subject,String content){SimpleMailMessage simpleMailMessage = new SimpleMailMessage();simpleMailMessage.setFrom(from);simpleMailMessage.setTo(to);simpleMailMessage.setCc(cc);simpleMailMessage.setSubject(subject);simpleMailMessage.setText(content);javaMailSender.send(simpleMailMessage);}
}
3.1测试一下(这里不管你们是Test测试也好,启动容器也好,小编就不写了)
@ResourceMailService mailService;public void sendSimpleMail(){mailService.sendSimpleMail("cyc@qq.com","zxc@qq.com","zxc@qq.com","标题","Hello World");}
4.发送带附件的邮件
/*** 代附件的邮件* @param from* @param to* @param subject* @param content* @param file*/public void sendAttachFileMail(String from, String to, String subject, String content, File file) {try{MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);mimeMessageHelper.setFrom(from);mimeMessageHelper.setTo(to);mimeMessageHelper.setSubject(subject);mimeMessageHelper.setText(content);mimeMessageHelper.addAttachment(file.getName(),file);javaMailSender.send(mimeMessage);}catch (Exception e){e.printStackTrace();}}
4.1测试
public void sendAttachFileMail(){mailService.sendAttachFileMail("cyc@qq.com","zxc@qq.com","标题","lll",new File("D://anz-t//U1902.exe"));}
5.带图片的邮件
/*** 带图片的邮件* @param from* @param to* @param subject* @param content* @param srePAth* @param resIds*/public void sendMailWithImg(String from,String to,String subject,String content,String [] srePAth,String[]resIds){if (srePAth.length!=resIds.length){System.out.println("发送失败");return;}try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);mimeMessageHelper.setTo(to);mimeMessageHelper.setFrom(from);mimeMessageHelper.setSubject(subject);mimeMessageHelper.setText(content,true);for (int i = 0; i < srePAth.length; i++) {FileSystemResource res = new FileSystemResource(new File(srePAth[i]));mimeMessageHelper.addInline(resIds[i],res);}javaMailSender.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}
5.1测试
public void sendMailWithImg(){mailService.sendMailWithImg("cyc@qq.com","zxc@qq.com","标题","图片1:<div><img src='cid:p01'/></div>图片2:<div><img src='cid:p02'/></div>",new String[]{"C:\\Users\\cyc\\Pictures\\Fedora.png","C:\\Users\\cyc\\Pictures\\windows7.jpg"},new String[]{"po1","po2"});}
也可以是FreeMarker或者thymeleaf模板,下面使用thymeleaf模板编写邮件发送功能
1.加依赖
<!--thymeleaf--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
2.服务
/*** 使用thymeleaf模板* @param from* @param to* @param subject* @param context*/public void sendHtmlMail(String from,String to ,String subject,String context){try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);mimeMessageHelper.setFrom(from);mimeMessageHelper.setTo(to);mimeMessageHelper.setText(context);mimeMessageHelper.setSubject(subject);javaMailSender.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}
3.在resources/templates目录下创建mailtemplate.html文件,代码如下:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org:">
<head><meta charset="UTF-8"><title>邮件</title>
</head>
<body><div>邮件激活
</div>
<span th:text="${username}"></span>
<a href="http://www.baidu.com">核对无误请点击本链接激活邮箱</a>
</body>
</html>
4.测试
@AutowiredTemplateEngine templateEngine;public void sendHtmlMailThymeleaf(){Context context = new Context();context.setVariable("username","cyc");String mail = templateEngine.process("mailtemplate.html",context);mailService.sendHtmlMail("cyc@qq.com","zxc@qq.com","标题",mail);}
下面是我邮箱收到的邮件,内容不一样不要见怪
springboot整合mail邮箱相关推荐
- SpringBoot 整合163邮箱 阿里云25端口问题
SpringBoot 整合163邮箱阿里云25端口问题 使用 163 邮箱 SMTP服务器 非SSL协议 25端口,项目本地测试时没有问题, 但是发布到阿里云服务器就报错 经检查发现阿里云出于安全考虑 ...
- 【springboot】 springboot发送QQ邮件 springboot整合mail教程
首先需要引入jar包 <!-- 邮件依赖 --><dependency><groupId>org.springframework.boot</groupId& ...
- 程序员的浪漫之利用邮件定时表达爱意(SpringBoot整合mail服务)
获取邮箱安全密码 1.登录qq邮箱 2.点击设置 3.点击账户 4.往下滑找到下图所示位置 点击开启(本人这里开启过了,另外开启过程中会有验证,最后会发给你一个安全密码) 5.建立SpringBoot ...
- spring mail 发送html simple,SpringBoot整合Mail邮件发送
Spring提供了非常好用的JavaMailSender接口实现邮件发送.在Spring Boot的Starter模块中也为此提供了自动化配置. 添加依赖 org.springframework.bo ...
- SpringBoot整合qq邮箱验证码使用
目录 准备工作 依赖 yml配置 Config Service层接口 ServiceImpl实现 Controller层 准备工作 依赖 <dependency><groupId&g ...
- SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)
SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊) 目录 SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊) 1.概述 2.最佳实践 2.1创建项目引入依赖(mail) ...
- SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件
JavaMail是Java开发中邮件处理的开源类库,支持常用协议如:SMTP.POP3.IMAP 一.SpringBoot整合 1.需要在pom文件中添加依赖spring-boot-starter-m ...
- Spring-Boot整合微信登陆、微信支付、邮箱发送、支付宝支付和阿里云短信
Spring-Boot整合 1. 发送邮件 2. 支付宝支付 3. 阿里云短信 4. 微信登陆 5. 微信支付 6. Swargger2 前后端API接口信息文档 7. ehcache缓存缓存 8. ...
- 【SpringBoot】整合mail发送邮件
大家在平时浏览网页的时候会经常看到这样的功能,在用户注册时需要发送手机验证码,或者邮箱验证码,那么这种功能是如何实现的呢? 验证码一般会有两种: 手机验证码:需要在第三方平台购买,要花钱的 邮箱验证码 ...
最新文章
- 通过Java字节码发现有趣的内幕之String篇(上)(转)
- (转)【javascript基础】原型与原型链
- 讲解Guitar Pro打谱使用技巧
- Cocos2d JS 之消灭星星(九) 处理星星类之——移动和消灭星星
- C语言的指针初始化特别注意一点
- jquery插件之jquery-ui
- 图像处理技术之分辨率与压缩
- 飞机游戏项目完整代码(详解JAVA300集)
- wgs utm java,Java,将经纬度转换为UTM
- css表格设置行列的颜色,CSS:为表格中的选定行设置颜色
- django数据库事务
- Windows x64平台 获取PEB表,并获取kernel32.dll的基址,并获取它的函数
- spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析
- python-docx表格样式列表
- keyboard键盘demo
- 搭建一个Vue项目(完整步骤)
- 【学堂在线数据挖掘:理论方法笔记】第一天(3.17)
- SQL Server完整性备份说明
- SQL开发技巧(二)
- 【WPS文档】Shift+F3:切换英文大小写格式的快捷键
热门文章
- viewers.js 图片查看插件使用说明-vue中引用
- 改oracle值,Oracle修改column值
- 人工智能AI 01人工智能入门指南
- 多核机器上多线程内存敏感程序的可伸缩性
- 《数据中台架构:企业数据化最佳实践》:感受数据中台建设五步法
- 日语与计算机论文,日语毕业论文指导初探
- 数字图像处理实验之对比度拉伸
- 京东店铺如何批量修改主推SKU?
- 天龙八部TLBB系列 - 网单获取数据库密码和服务端密码(超简单)
- Logging initialized using configuration in jar:file:/home/lan/software/hive/lib/hive-common-1.2.1.ja