news 2026/1/12 8:59:42

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/1/11 6:24:53

League Akari终极指南:免费智能助手快速提升LOL操作效率

League Akari终极指南&#xff1a;免费智能助手快速提升LOL操作效率 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还在为…

作者头像 李华
网站建设 2026/1/11 6:23:13

打造极致透明任务栏:TranslucentTB全方位使用手册

打造极致透明任务栏&#xff1a;TranslucentTB全方位使用手册 【免费下载链接】TranslucentTB 项目地址: https://gitcode.com/gh_mirrors/tra/TranslucentTB 想要为Windows桌面注入全新视觉活力吗&#xff1f;TranslucentTB这款轻量级美化工具能够让你的任务栏瞬间变身…

作者头像 李华
网站建设 2026/1/11 6:22:22

5分钟上手:LeagueAkari游戏助手的10个必学神技

5分钟上手&#xff1a;LeagueAkari游戏助手的10个必学神技 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还在为繁琐的游戏…

作者头像 李华
网站建设 2026/1/11 6:22:03

XUnity Auto Translator游戏翻译工具完整使用指南:从安装到精通

XUnity Auto Translator游戏翻译工具完整使用指南&#xff1a;从安装到精通 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 想要畅玩外语游戏却受限于语言障碍&#xff1f;XUnity Auto Translator正是你需…

作者头像 李华
网站建设 2026/1/11 6:21:26

PDF-Extract-Kit负载均衡:高并发访问的部署方案

PDF-Extract-Kit负载均衡&#xff1a;高并发访问的部署方案 1. 背景与挑战&#xff1a;PDF智能提取服务的高并发需求 随着企业数字化转型加速&#xff0c;文档自动化处理成为高频刚需。PDF-Extract-Kit作为一款由科哥二次开发的PDF智能提取工具箱&#xff0c;集成了布局检测、…

作者头像 李华