springboot项目中如何实现邮件告警功能(监控平台服务模拟)

本文主要是介绍springboot项目中如何实现邮件告警功能(监控平台服务模拟),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍 

        模拟服务器故障,然后实现邮件告警

 一、首先配置邮件的maven依赖

       

代码如下: 

<!--邮件告警--><!-- Spring Boot的邮件发送依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency>

 

二、其次在ideal中创建相关类文件

        2.1、创建一个服务类MonitoringService

                 使用Spring的JavaMailSender来发送邮件。

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;/*** Created by 姜水桦 on 2024/3/21 16:58* 功能描述:*         创建一个服务类,使用Spring的JavaMailSender来发送邮件。*/
@Service
public class MonitoringService {private final JavaMailSender mailSender;public MonitoringService(JavaMailSender mailSender) {this.mailSender = mailSender;}public void sendAlertEmail(String from,String to, String subject, String text) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from);message.setTo(to);message.setSubject(subject);message.setText(text);mailSender.send(message);}
}
        2.2、 定义一个监控类
        在你的监控组件中,当检测到异常时,调用EmailService的sendAlertEmail方法来发送邮件。
package com.example.service;import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;/*** Created by 姜水桦 on 2024/3/21 16:58* 功能描述:*         创建一个服务类,使用Spring的JavaMailSender来发送邮件。*/
@Service
public class MonitoringService {private final JavaMailSender mailSender;public MonitoringService(JavaMailSender mailSender) {this.mailSender = mailSender;}public void sendAlertEmail(String from,String to, String subject, String text) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from);message.setTo(to);message.setSubject(subject);message.setText(text);mailSender.send(message);}
}
         2.3、再创建一个控制器类(逻辑层)
EmailController
package com.example.controller;import com.example.common.AuthAccess;
import com.example.utils.ServiceMonitor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;/*** Created by 姜水桦 on 2024/3/21 19:53* 功能描述:*/
@RestController
public class EmailController {@Autowiredprivate ServiceMonitor serviceMonitor;// 每隔30秒执行一次checkServiceStatus方法
//    @Scheduled(fixedRate = 30000)
//    @Scheduled(fixedRate = 1000)@GetMapping("/mail")@AuthAccesspublic void monitorService() {serviceMonitor.checkServiceStatus();}
}
        2.4、 配置application.yml

        

spring:#邮箱配置mail:host: smtp.qq.comport: 465# 使用自己的发送方用户名 + 授权码填充username: jiangshuihua1018@qq.compassword: vyqsovsepomlecdddefault-encoding: UTF-8properties:mail:smtp:ssl:enable: falserequired: falsesocketFactory:class: javax.net.ssl.SSLSocketFactoryallow8bitmime: truedebug: true

注意:这里的密码指的是你QQ账号里面的授权码 

关于如何获取授权码链接地址如下:

如何开启QQ邮箱的SMTP服务和设置授权码 - 知乎 (zhihu.com)

        2.5、最后启动springboot服务器即可

三、在postman中测试用例

        服务器启动后,在postman中测试接口用例 ,因为上面随机数生成在0~1之间,所以if()中的值始终为true,会继续往下执行,实现邮件告警通知。

四、结果展示 

看到如下界面即表示邮件告警成功 

 查看发送到网易的邮箱内容

 

这篇关于springboot项目中如何实现邮件告警功能(监控平台服务模拟)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/842385

相关文章

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

MySQL查看表的历史SQL的几种实现方法

《MySQL查看表的历史SQL的几种实现方法》:本文主要介绍多种查看MySQL表历史SQL的方法,包括通用查询日志、慢查询日志、performance_schema、binlog、第三方工具等,并... 目录mysql 查看某张表的历史SQL1.查看MySQL通用查询日志(需提前开启)2.查看慢查询日志3.

Java实现字符串大小写转换的常用方法

《Java实现字符串大小写转换的常用方法》在Java中,字符串大小写转换是文本处理的核心操作之一,Java提供了多种灵活的方式来实现大小写转换,适用于不同场景和需求,本文将全面解析大小写转换的各种方法... 目录前言核心转换方法1.String类的基础方法2. 考虑区域设置的转换3. 字符级别的转换高级转换

使用Python实现局域网远程监控电脑屏幕的方法

《使用Python实现局域网远程监控电脑屏幕的方法》文章介绍了两种使用Python在局域网内实现远程监控电脑屏幕的方法,方法一使用mss和socket,方法二使用PyAutoGUI和Flask,每种方... 目录方法一:使用mss和socket实现屏幕共享服务端(被监控端)客户端(监控端)方法二:使用PyA

Prometheus+cpolar如何在手机上也能监控服务器状态?

《Prometheus+cpolar如何在手机上也能监控服务器状态?》本文强调了通过Cpolar这一内网穿透工具,轻松突破Prometheus仅限于局域网访问的限制,实现外网随时随地访问监控数据,教你... 目录前言1.安装prometheus2.安装cpolar实现随时随地开发3.配置公网地址4.保留固定

MyBatis-Plus逻辑删除实现过程

《MyBatis-Plus逻辑删除实现过程》本文介绍了MyBatis-Plus如何实现逻辑删除功能,包括自动填充字段、配置与实现步骤、常见应用场景,并展示了如何使用remove方法进行逻辑删除,逻辑删... 目录1. 逻辑删除的必要性编程1.1 逻辑删除的定义1.2 逻辑删php除的优点1.3 适用场景2.

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index: