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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1142629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDF-Extract-Kit进阶教程:多模型协同工作流设计

PDF-Extract-Kit进阶教程&#xff1a;多模型协同工作流设计 1. 引言 1.1 背景与挑战 在处理复杂PDF文档时&#xff0c;单一模型往往难以满足多样化的信息提取需求。例如学术论文中同时包含文本、表格、数学公式和图表等元素&#xff0c;若仅依赖OCR或布局检测中的某一个模块…

BetterGI原神自动化助手:3分钟掌握智能游戏体验

BetterGI原神自动化助手&#xff1a;3分钟掌握智能游戏体验 【免费下载链接】better-genshin-impact &#x1f368;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools For Gensh…

终极网盘下载工具:3分钟掌握6大云盘极速下载技巧

终极网盘下载工具&#xff1a;3分钟掌握6大云盘极速下载技巧 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 还在为网盘下载限速而烦恼吗&#xff1f;今天为大家推荐一款功能强大的开源网盘下…

网盘直链下载助手:告别限速困扰的完整使用指南

网盘直链下载助手&#xff1a;告别限速困扰的完整使用指南 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 还在为网盘下载速度慢而烦恼吗&#xff1f;网盘直链下载助手正是解决这一痛点的完美…

猫抓浏览器扩展:告别视频下载难题的终极解决方案

猫抓浏览器扩展&#xff1a;告别视频下载难题的终极解决方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存网页视频而困扰吗&#xff1f;当你看到精彩的在线内容却无法离线观看时&am…

STM32下ST7789屏幕旋转功能实现解析

如何让ST7789屏幕“转”起来&#xff1f;——STM32下的旋转控制全解析你有没有遇到过这样的场景&#xff1a;手里的智能表盘装反了&#xff0c;文字倒着显示&#xff1b;或者手持设备换个方向握持&#xff0c;界面却无法自动适配&#xff1f;在嵌入式开发中&#xff0c;这类问题…

全面掌握LeaguePrank:LOL游戏界面个性化定制权威指南

全面掌握LeaguePrank&#xff1a;LOL游戏界面个性化定制权威指南 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank LeaguePrank是一款功能强大的英雄联盟客户端美化工具&#xff0c;通过LCU API实现与游戏客户端的深度交互。该工…

嵌入式C项目实战:keil5编译器5.06下载与工程创建

从零开始搭建嵌入式C开发环境&#xff1a;Keil5编译器5.06实战全解析 你是不是也曾卡在第一步——打开Keil uVision&#xff0c;点了“New Project”&#xff0c;却不知道接下来该做什么&#xff1f;明明代码写得没错&#xff0c;可一编译就报 stm32f1xx.h file not found &…

如何快速掌握LeagueAkari:英雄联盟自动化助手的完整使用指南

如何快速掌握LeagueAkari&#xff1a;英雄联盟自动化助手的完整使用指南 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还…

游戏画面升级利器:5个步骤快速掌握DLSS版本切换技巧

游戏画面升级利器&#xff1a;5个步骤快速掌握DLSS版本切换技巧 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏DLSS版本不兼容而烦恼吗&#xff1f;想要轻松提升游戏性能却不知从何入手&#xff1f;DLSS Sw…

游戏性能优化新境界:DLSS版本管理的艺术与科学

游戏性能优化新境界&#xff1a;DLSS版本管理的艺术与科学 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 想要在激烈的游戏对决中占据优势&#xff0c;却苦于硬件性能的瓶颈&#xff1f;DLSS Swapper为你打开了游戏优…

PDF-Extract-Kit WebUI使用指南:从安装到高级功能详解

PDF-Extract-Kit WebUI使用指南&#xff1a;从安装到高级功能详解 1. 引言 1.1 技术背景与工具定位 在数字化办公和学术研究中&#xff0c;PDF文档的智能信息提取已成为高频需求。传统方法依赖手动复制或通用OCR工具&#xff0c;难以应对复杂版式、数学公式、表格结构等专业…

PDF-Extract-Kit保姆级教程:解决中文PDF识别难题

PDF-Extract-Kit保姆级教程&#xff1a;解决中文PDF识别难题 1. 引言 在处理学术论文、技术文档或扫描件时&#xff0c;PDF文件中的文字、公式、表格等元素的提取一直是一个令人头疼的问题&#xff0c;尤其是面对复杂的中文排版和混合内容时。传统的OCR工具往往难以准确识别布…

LeagueAkari英雄联盟辅助工具:5分钟快速上手的智能游戏管家

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

精通XUnity Auto Translator:游戏文本本地化深度解析与实战进阶

精通XUnity Auto Translator&#xff1a;游戏文本本地化深度解析与实战进阶 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在全球化游戏浪潮中&#xff0c;语言障碍往往成为玩家深度体验优质内容的隐形壁…

PDF-Extract-Kit表格识别进阶:合并单元格处理技巧

PDF-Extract-Kit表格识别进阶&#xff1a;合并单元格处理技巧 1. 引言&#xff1a;复杂表格识别的挑战与需求 在实际文档处理中&#xff0c;PDF中的表格往往并非简单的规整结构。尤其在财务报表、科研数据表、政府公文等场景中&#xff0c;跨行/跨列的合并单元格极为常见。这…

DownKyi视频下载工具:解锁B站内容离线收藏新体验

DownKyi视频下载工具&#xff1a;解锁B站内容离线收藏新体验 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09…

5分钟掌握League Akari:英雄联盟玩家的终极自动化解决方案

5分钟掌握League Akari&#xff1a;英雄联盟玩家的终极自动化解决方案 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还在…

高效年会抽奖系统实战手册:从零配置到专业应用

高效年会抽奖系统实战手册&#xff1a;从零配置到专业应用 【免费下载链接】lucky-draw 年会抽奖程序 项目地址: https://gitcode.com/gh_mirrors/lu/lucky-draw 年会抽奖工具作为企业活动的重要环节&#xff0c;其效率和体验直接影响现场氛围。这款开源抽奖系统凭借出色…

League Akari智能辅助:让英雄联盟操作效率提升300%的秘密武器

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