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邮箱相关推荐

  1. SpringBoot 整合163邮箱 阿里云25端口问题

    SpringBoot 整合163邮箱阿里云25端口问题 使用 163 邮箱 SMTP服务器 非SSL协议 25端口,项目本地测试时没有问题, 但是发布到阿里云服务器就报错 经检查发现阿里云出于安全考虑 ...

  2. 【springboot】 springboot发送QQ邮件 springboot整合mail教程

    首先需要引入jar包 <!-- 邮件依赖 --><dependency><groupId>org.springframework.boot</groupId& ...

  3. 程序员的浪漫之利用邮件定时表达爱意(SpringBoot整合mail服务)

    获取邮箱安全密码 1.登录qq邮箱 2.点击设置 3.点击账户 4.往下滑找到下图所示位置 点击开启(本人这里开启过了,另外开启过程中会有验证,最后会发给你一个安全密码) 5.建立SpringBoot ...

  4. spring mail 发送html simple,SpringBoot整合Mail邮件发送

    Spring提供了非常好用的JavaMailSender接口实现邮件发送.在Spring Boot的Starter模块中也为此提供了自动化配置. 添加依赖 org.springframework.bo ...

  5. SpringBoot整合qq邮箱验证码使用

    目录 准备工作 依赖 yml配置 Config Service层接口 ServiceImpl实现 Controller层 准备工作 依赖 <dependency><groupId&g ...

  6. SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)

    SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊) 目录 SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊) 1.概述 2.最佳实践 2.1创建项目引入依赖(mail) ...

  7. SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件

    JavaMail是Java开发中邮件处理的开源类库,支持常用协议如:SMTP.POP3.IMAP 一.SpringBoot整合 1.需要在pom文件中添加依赖spring-boot-starter-m ...

  8. Spring-Boot整合微信登陆、微信支付、邮箱发送、支付宝支付和阿里云短信

    Spring-Boot整合 1. 发送邮件 2. 支付宝支付 3. 阿里云短信 4. 微信登陆 5. 微信支付 6. Swargger2 前后端API接口信息文档 7. ehcache缓存缓存 8. ...

  9. 【SpringBoot】整合mail发送邮件

    大家在平时浏览网页的时候会经常看到这样的功能,在用户注册时需要发送手机验证码,或者邮箱验证码,那么这种功能是如何实现的呢? 验证码一般会有两种: 手机验证码:需要在第三方平台购买,要花钱的 邮箱验证码 ...

最新文章

  1. 通过Java字节码发现有趣的内幕之String篇(上)(转)
  2. (转)【javascript基础】原型与原型链
  3. 讲解Guitar Pro打谱使用技巧
  4. Cocos2d JS 之消灭星星(九) 处理星星类之——移动和消灭星星
  5. C语言的指针初始化特别注意一点
  6. jquery插件之jquery-ui
  7. 图像处理技术之分辨率与压缩
  8. 飞机游戏项目完整代码(详解JAVA300集)
  9. wgs utm java,Java,将经纬度转换为UTM
  10. css表格设置行列的颜色,CSS:为表格中的选定行设置颜色
  11. django数据库事务
  12. Windows x64平台 获取PEB表,并获取kernel32.dll的基址,并获取它的函数
  13. spark 源码分析之八--Spark RPC剖析之TransportContext和TransportClientFactory剖析
  14. python-docx表格样式列表
  15. keyboard键盘demo
  16. 搭建一个Vue项目(完整步骤)
  17. 【学堂在线数据挖掘:理论方法笔记】第一天(3.17)
  18. SQL Server完整性备份说明
  19. SQL开发技巧(二)
  20. 【WPS文档】Shift+F3:切换英文大小写格式的快捷键

热门文章

  1. viewers.js 图片查看插件使用说明-vue中引用
  2. 改oracle值,Oracle修改column值
  3. 人工智能AI 01人工智能入门指南
  4. 多核机器上多线程内存敏感程序的可伸缩性
  5. 《数据中台架构:企业数据化最佳实践》:感受数据中台建设五步法
  6. 日语与计算机论文,日语毕业论文指导初探
  7. 数字图像处理实验之对比度拉伸
  8. 京东店铺如何批量修改主推SKU?
  9. 天龙八部TLBB系列 - 网单获取数据库密码和服务端密码(超简单)
  10. Logging initialized using configuration in jar:file:/home/lan/software/hive/lib/hive-common-1.2.1.ja