SpringBoot轻松实现邮件发送-copy即用

news2024/9/21 4:37:58

👩🏽‍💻个人主页:阿木木AEcru (更多精彩内容可进入主页观看)

🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》

💹每一次技术突破,都是对自我能力的挑战和超越。

目录

    • 前言
    • 一、配置邮箱权限
    • 二、发送邮箱实现
    • 三、结尾
    • 往期内容推荐

前言

不管在日常生活中还是用于程序通知,发送邮件还是比较常见的,例如:①有些网站在重置密码的时候,会发送邮件让你点击验证后重置密码 ②程序中某些相对重要的业务可能会有异常邮件提醒之类的等等非常多的应用场景我就不一一列举出来了。
使用邮件有个非常好的点,就是免费,还有就是用起来也非常简单,总的来说就是成本相对较低。当然也有不好的点就是有可能会丢失,也就是发送失败。

一、配置邮箱权限

在这里开通 SMTP

二、发送邮箱实现

然后引入邮件依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置yml

spring:
  mail:
    # 设置邮箱主机
    host: smtp.163.com
    # SMTP 服务器的端口
    port: 587
    # 设置用户名,这里使用你邮箱账号就行
    username: 123456789@163.com
    # 设置密码,该处的密码是邮箱开启SMTP的授权码而非邮箱密码
    password: SODJSHAUHGQWRQWE
    default-encoding: UTF-8
    protocol: smtps
    properties:
      mail:
        smtp:
          ssl:
            enable: true

具体的实现类

@Slf4j
@Service
@RequiredArgsConstructor
public class MailServiceImpl  implements MailService {

    private final JavaMailSender javaMailSender;
    
    //发送邮件
    @Override
    public void sendEmail(String email,String subject, String text) {
        try {
            SimpleMailMessage mailMessage = new SimpleMailMessage();
            //你的邮箱账号
            mailMessage.setFrom("123456789@163.com");
            //接收方的邮箱账号
            mailMessage.setTo(email);
            //标题
            mailMessage.setSubject(subject);
            //内容
            mailMessage.setText(text);
            //发送邮件
            javaMailSender.send(mailMessage);
        } catch (Exception e) {
            e.printStackTrace();
            log.info("发送邮箱失败:{}",e.getMessage());
        }
    }

}

三、结尾

感谢观看至此,希望该文章能够帮助到您提升知识和技能。如果您喜欢我的内容,请不要忘记点赞和分享哦!👍
在这里插入图片描述

往期内容推荐

链接
Docker部署MySQL主从详细教程
保姆级教程手把手教你如何快速部署一个属于你自己的微信AI机器人-支持群聊
还在用if校验参数?SpringBoot使用validation优雅实现参数校验
Docker三分钟部署ElasticSearch平替MeiliSearch轻量级搜索引擎
Java使用Hutool工具类轻松生成验证码

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

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

相关文章

keeplive配置详解与haproxy配置详解

一、keepalive相关知识 1.1 keepalive介绍 keepalive即LVS集群当中的高可用架构&#xff0c;只是针对调度器的高可用。是高可用的HA架构。 keepalive就是基于VRRP协议来实现LVS高可用的方案。 1、组播地址 224.0.0.18&#xff0c;根据组播地址进行通信&#xff0c;主备之间发…

【学习笔记】A2X通信的协议(一)- 核心内容

3GPP TS 24.577 V18.1.0的技术规范&#xff0c;主要定义了5G系统中A2X通信的协议方面&#xff0c;特别是在PC5接口和Uu接口上的A2X服务。以下是文件的核心内容分析&#xff1a; 文档概述与目的&#xff1a; 技术规范背景&#xff1a;文档是3GPP在5G系统&#xff08;5GS&#x…

WEEK 4 周报

这周专题是图论&#xff1a; 目录 这周专题是图论&#xff1a; 树和图的存储及遍历&#xff1a; 存储&#xff1a; 遍历&#xff1a;(每个点只遍历一次&#xff0c;所以需要卡一个布尔数组标记是否已经被遍历) 1.深度优先遍历&#xff1a; 树的重心&#xff1a; 2.宽度…

Apache POl初学

介绍 入门案例 通过POI写入操作 /*** 使用POI操作Excel文件*/ public class POITest {/*** 通过POI创建Excel文件并写入文件内容**/public static void write() throws Exception{//在内存中创建一个Excel文件XSSFWorkbook excel new XSSFWorkbook();//在Excel中创建一个Shee…

麦田物语第十九天

系列文章目录 麦田物语第十九天 文章目录 系列文章目录一、保存和加载场景中的物品二、设置鼠标指针根据物品调整 一、保存和加载场景中的物品 本小节我们想要解决一个问题&#xff0c;就是当我们跳转场景后&#xff0c;在返回之前场景&#xff0c;发现场景中被我们拾取的物品…

md文件转doc文件

目录 起因 实践 python方式安装 安装包安装 转换 后记 起因 近期需要提交一些文件出去&#xff0c;一般都是要word或pdf版的&#xff0c;但是手头只有md格式的&#xff0c;于是需要将md转为doc 实践 问了下度娘&#xff0c;pandoc是个不错的方法&#xff0c;可以通过下…

【C++】:错误处理机制 -- 异常

目录 前言一&#xff0c;C语言传统的处理错误的方式二&#xff0c;C异常的概念三&#xff0c;异常的使用3.1 异常的抛出和匹配原则3.2 在函数调用链中异常栈展开匹配原则3.3 异常的重新抛出3.4 异常规范 四&#xff0c;自定义异常体系五&#xff0c;异常的优缺点 点击跳转至文章…

经典⾯试题,循环中使⽤闭包解决 var 定义函数的问题

⾸先因为 setTimeout 是个异步函数&#xff0c;所有会先把循环全部执⾏完毕&#xff0c;这时候 i 就是 5了&#xff0c;所以会输出6个 5。 解决办法两种&#xff0c;第一种使用闭包 &#xff1a; 第⼆种就是使用 setTimeout 的第三个参数&#xff1a; 第三种就是使用 let 定义 …

Power功效分析之方差原理及案例教程

Power功效分析常用于实验研究时样本量的计算&#xff08;或功效值计算&#xff09;&#xff0c;实验研究中进行方差分析的情况较多&#xff0c;在SPSSAU中单独将方差放成一个计算Power的方法&#xff0c;其具体包括单因素方差/双因素方差和多因素方差&#xff0c;具体如下表格所…

Callable 与 Runnable:多线程编程中的两大接口对比

Callable 与 Runnable&#xff1a;多线程编程中的两大接口对比 1、主要区别1.1 返回值1.2 使用方式 2、适用场景3、示例 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java多线程编程中&#xff0c;Callable和Runnable是两个核心接口&am…

如何打造 BeatBuddy:一款分析你的 Spotify 数据的 Web 应用

欢迎来到雲闪世界&#xff01;我将解释我是如何构建 BeatBuddy 的&#xff0c;这是一款分析您在 Spotify 上收听内容的网络应用。受 Spotify Wrapped 的启发&#xff0c;它旨在解读您当前的心情并提供您可以根据该分析进行调整的建议。 如果你不想阅读所有内容&#xff0c;只想…

未授权访问漏洞系列

环境 1.此漏洞需要靶场vulhub&#xff0c;可自行前往gethub下载 2.需要虚拟机或云服务器等linux系统&#xff0c;并在此系统安装docker和docker-compose提供环境支持 3.运行docker-compose指令为docker-compose up -d即可运行当前目录下的文件 Redis未授权访问漏洞 一、进…

流程挖掘,为光伏企业重塑确定的竞争力

2023年12月15日&#xff0c;2023中资光伏出海大会在江苏南京隆重举行。国内领先的流程挖掘服务商望繁信科技应邀出席大会&#xff0c;与来自海内外的重要领导、重磅嘉宾、行业大咖齐聚一堂&#xff0c;聚焦“数字化、全球化、本地化”&#xff0c;共同探讨中资光伏企业的出海机…

windows11 DNS手动配置过DNS,在恢复成自动获取后,无法自动获取到DNS,网卡里面DNS还是显示之前手动配置的DNS

windows11 DNS一开始手动配置过DNS,然后在恢复成自动获取后&#xff0c;网卡无法自动获取到DNS&#xff0c;并且网卡里面DNS显示还是之前手动配置的DNS。 系统版本&#xff1a;windows11 企业版、版&#xff1a;10.0.22621 版本 22621 解决办法&#xff1a; 注册表“HKEY_LO…

RHEL9网络设定及网络脚本

1. 添加一张网卡 2. 重写一个网卡配置文件 [rootlocalhost ~]# cd /etc/NetworkManager/system-connections/ [rootlocalhost system-connections]# ls ens160.nmconnection [rootlocalhost system-connections]# vim ens224.connection [rootlocalhost system-connections…

大模型应用(六)如何写好一个prompt,理论+实践

前言 设定是四个基本要素之一&#xff0c;没有一个好的prompt&#xff0c;就绝对不可能有一个好的agent。 如何写prompt的大部分是我粘的&#xff0c;实在是懒得写了。不感兴趣可以直接跳实战。 什么是prompt 大语言模型&#xff08;LLM&#xff09;的能力并不是被设计出来…

【数据结构与算法】迷宫求解------回溯法

回溯法 一.迷宫求解算法二.二维数组表示地图1.地图2.初始化地图3.地图的打印 三.进入迷宫四.栈的实现五.迷宫内探1.首先判断我们的入口2.入栈做标记3.开始探险4.出口判断5.能否下一步6.做标记7.不能下一步 六.运行结果 一.迷宫求解算法 当我们想要找到迷宫的出口,那我们在计算…

为什么网站要使用HTTPS访问

网站使用HTTPS访问的原因有很多&#xff0c;主要可以归纳为以下几个关键点&#xff1a; 1、数据安全性&#xff1a;HTTPS使用SSL/TLS协议对通信过程进行加密&#xff0c;确保信息在传输过程中不被窃取、篡改或冒充。对于涉及敏感信息&#xff08;如个人身份、信用卡号等&#x…

AnyGPT: Unified Multimodal LLM with Discrete Sequence Modeling

发表时间&#xff1a;arXiv 2024年2月26日 论文链接&#xff1a;https://arxiv.org/pdf/2402.12226 作者单位&#xff1a; Fudan University Motivation&#xff1a; LLM 在理解和生成人类语言方面表现出非凡的能力。但是&#xff0c;LLM 的能力仅限于针对文本的处理。而现实…

JVM系列 | 对象的消亡2——HotSpot的设计细节

HotSpot 的细节实现 文章目录 HotSpot 的细节实现OopMap 与 根节点枚举根节点类型及说明HotSpot中的实现 OopMap 与 安全点安全点介绍如何保证程序在安全点上&#xff1f; 安全区域记忆集与卡表记忆集卡表 写屏障并发的可达性分析&#xff08;与用户线程&#xff09;并发可达性…