SpringBoot整合Email 邮件发送详解

server/2024/11/19 15:04:57/

文章目录

  • 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.comprotocol: smtpdefault-encoding: UTF-8username: your-email@163.compassword: your-authorization-codeproperties:mail:smtp:auth: truestarttls:enable: truerequired: true
QQ邮箱配置示例
spring:mail:host: smtp.qq.comprotocol: smtpdefault-encoding: UTF-8username: your-email@qq.compassword: your-authorization-codeproperties:mail:smtp:auth: truestarttls:enable: truerequired: true

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

三、邮件发送实现

1、邮件发送工具类

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

java">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 {@Autowiredprivate 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类,我们可以轻松发送普通文本邮件。

java">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格式的字符串即可。

java">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整合邮箱发送邮件 - 博客园

http://www.ppmy.cn/server/143215.html

相关文章

MATLAB和Python激发光谱

激发光谱是一种用于研究物质发光特性的分析方法。当样品吸收特定波长的光时&#xff0c;电子从基态跃迁至激发态。随后&#xff0c;当电子返回基态时&#xff0c;会发射出光子&#xff0c;产生荧光或磷光。激发光谱通过测量不同波长的入射光激发下的发光强度来获取数据。该技术…

基于FastAPI实现本地大模型API封装调用

关于FastAPI FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Python Web 框架&#xff0c;用于构建基于标准 Python 类型提示的 API。它以简洁、直观和高效的方式提供工具&#xff0c;特别适合开发现代 web 服务和后端应用程序。 问题&#xff1a;_pad() got an un…

2024-11-16----Android 11(全志H713)-----拉高LED灯

需求 屏背光亮起来的时候&#xff0c;LED灯 黄灯灭 绿灯亮 找到屏操作背光的驱动文件&#xff1a; longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/fastlogo/fastlogo.c写下操作LED灯的方法&#xff0c;在合适的地方调用 #define setbit(x,y) x|(1<<y) …

Android Framework AMS面试题及参考答案

目录 什么是 AMS? AMS 在 Android 系统中的作用? AMS 是如何启动的? Zygote、SystemServer 与 AMS 之间的关系? AMS 如何与其他系统服务(如 PackageManagerService、WindowManagerService、WMS)交互? AMS 如何使用 Binder 完成通信? AMS 如何管理系统服务的启动…

【自学笔记】无监督学习

文章目录 简述聚类 &#xff08;Cluster learning&#xff09;K-means 异常检测密度估计一些技巧 简述 无监督学习&#xff08;Unsupervised Learning&#xff09;是机器学习的一种方法&#xff0c;其特点是不依赖于事先标记的训练数据。在无监督学习中&#xff0c;算法尝试直接…

【机器学习】从马尔可夫链到CRF:全方位解析序列建模的核心技术

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

(Ubuntu)添加用户并授予sudo权限

在 Ubuntu 中&#xff0c;可以使用 adduser 命令来新建用户。 以下是步骤和说明&#xff1a; 1.打开终端&#xff1a; 可以通过按下 Ctrl Alt T 来打开终端&#xff0c;或者在应用程序菜单中搜索并打开“终端”。 2.使用 adduser 命令&#xff1a; 在终端中输入以下命令&a…

Android OpenGL ES详解——实例化

目录 一、实例化 1、背景 2、概念 实例化、实例数量 gl_InstanceID 应用举例 二、实例化数组 1、概念 2、应用举例 三、应用举例——小行星带 1、不使用实例化 2、使用实例化 四、总结 一、实例化 1、背景 假如你有一个有许多模型的场景&#xff0c;而这些模型的…