IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> springboot邮件发送(QQ邮箱) -> 正文阅读

[Java知识库]springboot邮件发送(QQ邮箱)

  1. yml配置文件
spring:
  mail:
    host: smtp.qq.com
    port: 587
    username: 发件人的QQ邮箱
    password: QQ邮箱里设置-》账户-》开启POP3/SMTP服务-》取得的码
    protocol: smtp
    default-encoding: UTF-8
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true
      mail.smtp.starttls.required: true
      mail.smtp.socketFactory.port: 465
      mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
      mail.smtp.socketFactory.fallback: false
  thymeleaf:
    cache: false
    prefix: classpath:/templates/
    check-template-location: true
    suffix: .html
    encoding: UTF-8
    servlet:
      content-type: text/html
    mode: HTML
  1. 代码

1 导入jar包

    implementation 'org.springframework.boot:spring-boot-starter-mail'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

2 创建一个发送邮件的类,将以下两个注入,并写一个得到数据的函数

	@Resource
    private JavaMailSender mailSender;
    private final TemplateEngine templateEngine;

    // EmailBody 为携带的抬头和数据,template为在templates文件夹下展示给用户看的邮件的html页面,toEmail是收件人
    private MimeMessage getMimeMessage(final EmailBody body, final String template, final String toEmail
    ) throws MessagingException {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        mimeMessageHelper.setFrom(emailFrom);
        mimeMessageHelper.setTo(toEmail);
        mimeMessageHelper.setSubject(body.getTitle());
        mimeMessageHelper.setText(templateEngine.process(template, body.getContext()), true);
        return mimeMessage;
    }

3 创建一个荷载数据的类,其中email.title为邮件的抬头,email.context为荷载,context.setVariable(“expire”, time);的expire为页面上要展示的文本的名字。

@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmailBody {
    @JsonIgnore
    private static final String DEFAULT_TITLE = "密码重置";

    private String title;
    private Context context;

    public static EmailBody build(final int random, final Long time) {
        EmailBody email = new EmailBody();
        Context context = new Context();
        context.setVariable("random", random);
        context.setVariable("expire", time);
        email.title = DEFAULT_TITLE;
        email.context = context;
        return email;
    }
}

4 发送,可以用线程池发送

    public void notifyPasswordReset(final MimeMessage mimeMessage) throws MessagingException {
            mailSender.send(mimeMessage));
        }
    }
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:11:18  更:2022-04-01 23:14:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:28:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码