news 2026/4/18 1:14:23

SpringBoot整合Email 邮件发送详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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整合邮箱发送邮件 - 博客园
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:27:58

GHelper性能优化终极指南:3步解锁华硕笔记本隐藏性能

GHelper性能优化终极指南&#xff1a;3步解锁华硕笔记本隐藏性能 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址…

作者头像 李华
网站建设 2026/4/17 18:21:49

PDF-Extract-Kit公式识别教程:图片转LaTeX代码详解

PDF-Extract-Kit公式识别教程&#xff1a;图片转LaTeX代码详解 1. 引言 在学术研究、论文撰写和技术文档编写中&#xff0c;数学公式的数字化处理是一项高频且繁琐的任务。传统方式依赖手动输入 LaTeX 公式&#xff0c;效率低且容易出错。PDF-Extract-Kit 是一个由“科哥”二…

作者头像 李华
网站建设 2026/4/18 8:59:05

DLSS版本管理神器:DLSS Swapper全面实战指南

DLSS版本管理神器&#xff1a;DLSS Swapper全面实战指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在当今游戏技术快速迭代的时代&#xff0c;DLSS版本兼容性问题成为许多玩家的困扰。DLSS Swapper作为专业的DLSS…

作者头像 李华
网站建设 2026/4/16 19:50:04

Blender3mf插件:3D打印模型处理的终极解决方案

Blender3mf插件&#xff1a;3D打印模型处理的终极解决方案 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender3mf插件为3D打印工作流程带来了革命性的便利&#xff0…

作者头像 李华
网站建设 2026/4/15 13:14:04

时间轮算法

✅什么是时间轮&#xff1f; 视频理解&#xff1a;时间轮算法 典型回答 时间轮算法&#xff08;Time Wheel Algorithm&#xff09;是一种用于处理定时任务和调度的常见算法。 时间轮算法主要需要定义一个时间轮盘&#xff0c;在一个时间轮盘中划分出多个槽位&#xff0c;每…

作者头像 李华
网站建设 2026/4/18 2:07:50

DownKyi终极教程:如何快速下载B站8K超高清视频

DownKyi终极教程&#xff1a;如何快速下载B站8K超高清视频 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。…

作者头像 李华