Spring Boot整合邮箱发送邮件实例

目录
  • 1.准备工作
  • 2.代码整合
  • 总结

1. 准备工作

登录进自己的 qq 邮箱获取授权码

设置 – 账户 – POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

点击开始获取授权码,将授权码保存下来,下面代码整合的时候需要使用

2. 代码整合

创建一个 Spring Boot 项目,引入以下依赖

<!-- email -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置文件

server:
  port: 8080
spring:
  # email 配置
  mail:
    # SMTP 服务器地址
    host: smtp.qq.com
    username: # 你的qq 邮箱地址
    password: # 授权码,上面从 qq 邮箱官网得到的授权码
    port: 587
    protocol: smtp
    default-encoding: UTF-8

创建一个邮件收件人信息的实体类

/**
 * @author lishisen
 * @description 邮件收件人信息
 * @date 2022/1/9 9:37
 **/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmailModel implements Serializable {

    // 收件人邮箱地址
    private String receiveEmailAddress;
    // 邮箱主题
    private String emailTheme;
    // 邮件内容
    private String emailContent;

}

创建一个服务提供类,SendEmailService.java

/**
 * @author lishisen
 * @description 邮件发送服务类
 * @date 2022/1/9 9:40
 **/
@Slf4j
@Component
public class SendEmailService {

    @Autowired
    private JavaMailSender javaMailSender;
    @Autowired
    private JavaMailSenderImpl javaMailSenderImpl;

    // 发送者地址
    private String posterAddress = "1876419736@qq.com";
    // 发送者名称
    private String posterName = "测试邮件发送";

    /**
     * 文本发送
     **/
    public void sendEmailAsText(final EmailModel emailModel) {
        System.out.println(emailModel.toString());
        MimeMessagePreparator mimeMessagePreparator = mimeMessage -> {
            mimeMessage.setFrom(posterAddress);
            mimeMessage.setRecipients(Message.RecipientType.TO, emailModel.getReceiveEmailAddress());
            mimeMessage.setText("发送者地址:" + posterAddress + '\n'
                    + "发送者名称:" + posterName + '\n'
                    + "内容:" + emailModel.getEmailContent());
        };
        try {
            this.javaMailSender.send(mimeMessagePreparator);
            log.info("邮箱已返送至[{}]邮箱!", emailModel.getReceiveEmailAddress());
        } catch (MailException e) {
            log.error("邮箱异常:{}", e);
        }
    }

    /**
     * html 网页发送
     * 该方法为同步方法
     **/
    public void sendEmailAsSysExceptionHtml(final EmailModel emailModel, String info) {
        MimeMessage mimeMessage = javaMailSenderImpl.createMimeMessage();
        MimeMessageHelper mimeMessageHelper;
        try {
            mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
            mimeMessageHelper.setFrom(posterAddress);
            mimeMessageHelper.setTo(emailModel.getReceiveEmailAddress());
            mimeMessageHelper.setSubject(emailModel.getEmailTheme());
            mimeMessageHelper.setText(
                    "<!DOCTYPE html>\n" +
                            "<html lang=\"en\">\n" +
                            "<head>\n" +
                            "    <meta charset=\"UTF-8\">\n" +
                            "    <title>Title</title>\n" +
                            "</head>\n" +
                            "<body>\n" +
                            "<h2>" + info + "</h2>\n" +
                            "<h3>您的验证码为:<span style='color: red'" + ">" +
                            emailModel.getEmailContent() +
                            "</span> " + ",请在 5 分钟内进行验证</h3>\n" +
                            "</body>\n" +
                            "</html>"
                    , true);
            this.javaMailSender.send(mimeMessage);
            log.info("邮箱已返送至[{}]邮箱!", emailModel.getReceiveEmailAddress());
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

测试使用

@Autowired
private SendEmailService sendEmailService;
@Test
public void sendMailTest() {
    // 创建收件人实体类,封装收件人的信息
    EmailModel emailModel = new EmailModel();
    emailModel.setReceiveEmailAddress("18xxxxxqq.com");
    emailModel.setEmailTheme("测试发送");
    emailModel.setEmailContent("测试发送邮箱主体信息内容");
    // 调用发送服务方法执行发送任务
    sendEmailService.sendEmailAsText(emailModel);
    System.out.println("邮件发送成功");
}

总结

到此这篇关于Spring Boot整合邮箱发送邮件实例的文章就介绍到这了,更多相关Spring Boot邮箱发送内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springboot实现发送邮件(QQ邮箱为例)

    本文实例为大家分享了springboot实现发送邮件的具体代码,供大家参考,具体内容如下 1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 2.找到qq邮箱,开启smtp服务,这里生成你的密码,复制第三步用 3.password里输

  • Spring Boot实现邮件服务(附:常见邮箱的配置)

    前言 发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息.最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring退出了JavaMailSender更加简化了邮件发送的过程,在之后springboot对此进行了封装就有了现在的spring-boot-starter-mail,本文将详细给大家介绍了关于Spring Boot邮件服务的相关内容,下面话不多说了,来一起看看详细的介绍吧 1. pom.xml文件中引入依赖 <dependen

  • springboot 使用QQ邮箱发送邮件的操作方法

    目录 一.QQ邮箱打开POP3/SMTP服务 二.springboot配置 一.QQ邮箱打开POP3/SMTP服务 上面的服务开启后,会得到一串授权密码在springboot配置中需要用到 二.springboot配置 IDE目录 1.在pom.xml添加spring-boot-starter-mail起步依赖 <!-- springboot开发mail项目的起步依赖--> <dependency> <groupId>org.springframework.boot&l

  • SpringBoot QQ邮箱发送邮件实例代码

    目录 1.获取QQ邮箱授权码 2.导入邮箱发送依赖启动器 3.配置文件yml添加邮件服务配置 4.编写接口IMailService 5.编写实现MailServiceImpl 6.Controller调用 7.thymeleaf模板 mailTemplate.html 总结 SpringBoot整合邮件任务(QQ邮箱发送) 1.获取QQ邮箱授权码 2.导入邮箱发送依赖启动器 使用定制邮件模板的方法实现通用邮件发送,Thymeleaf构建邮件模板需要一起导入依赖. <!-- Mail --> &

  • SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件的实现

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

  • Spring Boot整合邮箱发送邮件实例

    目录 1.准备工作 2.代码整合 总结 1. 准备工作 登录进自己的 qq 邮箱获取授权码 设置 – 账户 – POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 点击开始获取授权码,将授权码保存下来,下面代码整合的时候需要使用 2. 代码整合 创建一个 Spring Boot 项目,引入以下依赖 <!-- email --> <dependency> <groupId>org.springframework.boot</groupI

  • Spring Boot整合mybatis(一)实例代码

    sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置.接下来开始spring-boot与mybatis的整合. 1.创建一个maven工程命名为spring-boot-entity,pom.xml文件配置如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s

  • Spring Boot整合RabbitMQ实例(Topic模式)

    1.Topic交换器介绍 Topic Exchange 转发消息主要是根据通配符. 在这种交换机下,队列和交换机的绑定会定义一种路由模式,那么,通配符就要在这种路由模式和路由键之间匹配后交换机才能转发消息. 在这种交换机模式下: 路由键必须是一串字符,用句号(.) 隔开,比如说 agreements.us,或者 agreements.eu.stockholm 等. 路由模式必须包含一个 星号(*),主要用于匹配路由键指定位置的一个单词,比如说,一个路由模式是这样子:agreements..b.*

  • Spring Boot整合tk.mybatis代码实例

    这篇文章主要介绍了Spring Boot整合tk.mybatis代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 概述 tk.mybatis 是在 MyBatis 框架的基础上提供了很多工具,让开发更加高效 引入依赖 在 pom.xml 文件中引入 mapper-spring-boot-starter 依赖,该依赖会自动引入 MyBaits 相关依赖 <dependency> <groupId>tk.mybatis</

  • Spring Boot 整合 FreeMarker 实例分享

    目录 一.前言 二.FreeMarker 简介 三.准备工作 环境准备 添加 FreeMarker 依赖 添加 FreeMarker 相关配置 四.编写实体类和 Controller 编写实体类 编写 Controller 数据渲染 五.总结 一.前言 在之前的文章Spring Boot 整合 Thymeleaf 实例分享中,我们学习了如何将模板 Thymeleaf 整合到 Spring Boot 中,那今天我们就来看看,另一个老牌的开源免费模板引擎 - FreeMarker! 二.FreeMa

  • Spring Boot 整合 Reactor实例详解

    目录 引言 1 创建项目 2 集成 H2 数据库 3 创建测试类 3.1 user 实体 3.2 UserRepository 3.3 UserService 3.4 UserController 3.5 SpringReactorApplication 添加注解支持 测试 总结 引言 Reactor 是一个完全非阻塞的 JVM 响应式编程基础,有着高效的需求管理(背压的形式).它直接整合 Java8 的函数式 API,尤其是 CompletableFuture, Stream,还有 Durat

  • spring boot整合RabbitMQ实例详解(Fanout模式)

    1.Fanout Exchange介绍 Fanout Exchange 消息广播的模式,不管路由键或者是路由模式,会把消息发给绑定给它的全部队列,如果配置了routing_key会被忽略. 如上图所示,即当使用fanout交换器时,他会将消息广播到与该交换器绑定的所有队列上,这有利于你对单条消息做不同的反应. 例如存在以下场景:一个web服务要在用户完善信息时,获得积分奖励,这样你就可以创建两个对列,一个用来处理用户信息的请求,另一个对列获取这条消息是来完成积分奖励的任务. 2.代码示例 1).

  • Spring Boot整合mybatis并自动生成mapper和实体实例解析

    最近一直都在学习Java,发现目前Java招聘中,mybatis出现的频率挺高的,可能是目前Java开发中使用比较多的数据库ORM框架.于是我准备研究下Spring Boot和mybatis的整合. 1.在pom.xml文件中添加下面的配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

  • Spring Boot 整合 Thymeleaf 实例分享

    目录 一.什么是 Thymeleaf 二.整合过程 准备过程 添加 Thymeleaf 依赖 编写实体类和 Controller 创建Thymeleaf 模板 三.测试 一.什么是 Thymeleaf Thymeleaf 是新一代的 Java 模板引擎,类似于 Velocity.FreeMarker 等传统引擎,其语言和 HTML 很接近,而且扩展性更高: Thymeleaf 的主要目的是将优雅的模板引入开发工作流程中,并将 HTML 在浏览器中正确显示.同时能够作为静态引擎,让开发成员之间更方

随机推荐