当前位置: 首页 > news >正文

SpringBoot整合Email 邮件发送详解

文章目录
  • SpringBoot整合Email 邮件发送详解
    • 一、引言
    • 二、邮件发送需要的配置
      • 1、获取客户端授权码
        • 163邮箱授权码获取
        • QQ邮箱授权码获取
      • 2、SpringBoot配置SMTP服务
  • SpringBoot整合Email 邮件发送详解
    • 一、引言
    • 二、环境准备与配置
      • 1、依赖配置
      • 2、配置文件设置
        • 163邮箱配置示例
        • QQ邮箱配置示例
    • 三、邮件发送实现
      • 1、邮件发送工具类
      • 2、发送普通邮件
      • 3、发送HTML邮件
    • 四、总结

SpringBoot整合Email 邮件发送详解

一、引言

在现代软件开发中,邮件服务是应用与用户之间沟通的重要桥梁。无论是发送验证码、通知还是营销邮件,邮件服务都是不可或缺的一部分。SpringBoot作为一个轻量级的Java应用框架,提供了对邮件发送的原生支持,使得开发者可以轻松集成邮件发送功能。本文将详细介绍如何在SpringBoot项目中整合Email服务,包括普通邮件、HTML邮件、含静态资源邮件以及带附件邮件的发送,并给出163和QQ邮箱的配置示例。

二、邮件发送需要的配置

在各大邮件服务商中,为了安全起见,直接使用邮箱账号和密码是无法登录SMTP服务的,我们需要获取对应的客户端授权码。以下是163邮箱和QQ邮箱获取授权码的步骤以及如何在SpringBoot中配置SMTP服务。

1、获取客户端授权码
163邮箱授权码获取
  1. 登录163邮箱,进入设置。

  2. 选择“账户”选项卡。

  3. 向下滚动找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,开启“SMTP服务”。
    在这里插入图片描述

  4. 根据提示使用绑定的手机发送短信进行验证。
    在这里插入图片描述

  5. 成功后,可以设置或重置客户端授权码。

QQ邮箱授权码获取
  1. 登录QQ邮箱,点击“设置”。

  2. 选择“账户”选项卡。
    在这里插入图片描述

  3. 向下滚动找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,开启“SMTP服务”。
    在这里插入图片描述

  4. 根据提示进行验证,验证成功后即可看到授权码。

2、SpringBoot配置SMTP服务

在获取授权码后,我们可以在SpringBoot的配置文件中设置SMTP服务。

SpringBoot整合Email 邮件发送详解

一、引言

在现代软件开发中,邮件服务是应用与用户之间沟通的重要桥梁。无论是发送验证码、通知还是营销邮件,邮件服务都是不可或缺的一部分。SpringBoot作为一个轻量级的Java应用框架,提供了对邮件发送的原生支持,使得开发者可以轻松集成邮件发送功能。本文将详细介绍如何在SpringBoot项目中整合Email服务,包括普通邮件、HTML邮件、含静态资源邮件以及带附件邮件的发送,并给出163和QQ邮箱的配置示例。

二、环境准备与配置

1、依赖配置

首先,我们需要在SpringBoot项目的pom.xml文件中添加邮件发送相关的依赖。

<dependencies>
    <!-- Spring Boot Mail Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
</dependencies>
2、配置文件设置

接下来,在application.ymlapplication.properties中配置邮件服务器的信息。

163邮箱配置示例
spring:
  mail:
    host: smtp.163.com
    protocol: smtp
    default-encoding: UTF-8
    username: your-email@163.com
    password: your-authorization-code
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true
QQ邮箱配置示例
spring:
  mail:
    host: smtp.qq.com
    protocol: smtp
    default-encoding: UTF-8
    username: your-email@qq.com
    password: your-authorization-code
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true

在这里,usernamepassword需要替换为你的邮箱账号和对应的授权码。授权码可以通过登录邮箱服务商的网页版,进入设置获取。

三、邮件发送实现

1、邮件发送工具类

我们创建一个邮件发送的工具类MailUtil,用于封装邮件发送的逻辑。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

@Component
public class MailUtil {

    @Autowired
    private JavaMailSender mailSender;

    public void sendSimpleMail(String to, String subject, String text) throws MessagingException {
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);
        helper.setFrom("your-email@163.com");
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(text);
        mailSender.send(message);
    }

    public void sendHtmlMail(String to, String subject, String html) throws MessagingException {
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom("your-email@163.com");
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(html, true);
        mailSender.send(message);
    }
}
2、发送普通邮件

使用MailUtil类,我们可以轻松发送普通文本邮件。

public void sendSimpleMail(String to, String subject, String text) {
    try {
        MailUtil mailUtil = new MailUtil();
        mailUtil.sendSimpleMail(to, subject, text);
        System.out.println("邮件发送成功");
    } catch (Exception e) {
        System.out.println("邮件发送失败");
        e.printStackTrace();
    }
}
3、发送HTML邮件

对于HTML邮件,我们只需在setText方法中传入HTML格式的字符串即可。

public void sendHtmlMail(String to, String subject, String html) {
    try {
        MailUtil mailUtil = new MailUtil();
        mailUtil.sendHtmlMail(to, subject, html);
        System.out.println("HTML邮件发送成功");
    } catch (Exception e) {
        System.out.println("HTML邮件发送失败");
        e.printStackTrace();
    }
}

四、总结

通过上述步骤,我们成功在SpringBoot项目中整合了Email服务,实现了普通邮件、HTML邮件、含静态资源邮件以及带附件邮件的发送。这不仅提升了应用的功能性,也增强了与用户的互动。希望本文能够帮助到需要在项目中集成邮件服务的开发者。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • SpringBoot整合Email 邮件发送-CSDN博客
  • SpringBoot整合邮箱发送邮件 - 博客园

相关文章:

  • Python经典游戏:植物大战僵尸(附源码!)
  • mac 意外退出移动硬盘后再次插入移动硬盘不显示怎么办
  • springboot整合modbus实现通讯
  • github用户名密码登陆失效了
  • SolidWorks速成教程P3-7【零件 | 第七节】——3D设计打印手机支架+草图文本草图图片材质与质量属性测量
  • TypeScript 面试题
  • 直线导轨尺寸参数
  • 在Autonomous DB中创建训练数据集
  • 机试刷题_数组中出现次数超过一半的数字【python】
  • Linux上Elasticsearch 集群部署指南
  • UE5中的四元数
  • 【kafka系列】日志存储设计 消息写入、读取
  • 基于CXL内存的热数据检测技术解读
  • SpringCloud面试题----如何保证 Spring Cloud 微服务的安全性
  • 【MySQL】数据库基础知识
  • 数据库脚本MySQL8转MySQL5
  • 基于角色访问控制的UML 表示02
  • 【Python】函数
  • Java八股文详细文档.2(基于黑马、ChatGPT、DeepSeek)
  • springboot与springcloud对应版本
  • 苏轼“胡为适南海”?
  • 德国总理默茨发表首份政府声明:将提升国防能力,全力发展经济
  • 马上评|“衣服越来越难买”,对市场是一个提醒
  • 法学联合书单|法庭上的妇女
  • 4月份全国企业销售收入同比增长4.3%
  • 一手实测深夜发布的世界首个设计Agent - Lovart。