skywalking告警qq邮箱发送

首先开启发送接收qq邮箱的权限
开启之后,会让你发送信息,按着一系列操作,获得password
(授权码(例如,qq开启SMTP授权码,qq授权码16位))
在这里插入图片描述

<!--        mail邮箱-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
spring:
  mail:
    host: smtp.qq.com #qq邮箱的不用改
    username: 2659934495@qq.com # 发送者的邮箱
    password: woemqxxxxxxx #授权码,不是密码
    to: 2659934495@qq.com #对方的邮箱
    title: 告警邮箱
    default-encoding: utf-8
    port: 465
    protocol: smtp
    properties:
      mail:
        debug:
          false
        smtp:
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory

告警回调的实体类

@Getter
@EqualsAndHashCode
@RequiredArgsConstructor
@NoArgsConstructor(force = true)
public class AlarmMessage {
   
    private final String scope;
    private final int scopeId;
    private final String name;
    private final String id0;
    private final String id1;
}

告警接口


@RestController
@RequiredArgsConstructor
public class WebHooks {
   
    private final JavaMailSender sender;

    @Value("${spring.mail.username}")
    private String from;

    @Value("${spring.mail.to}")
    private String to;

    @Value("${spring.mail.title}")
    private String title;


    private List<AlarmMessage> lastList=new ArrayList<>();

    //邮箱功能
    private void sendMail(){
   
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(from);
        message.setTo(to);
        message.setSubject(title);
        String content = getContent(lastList);
        message.setText(content);
        sender.send(message);
        System.out.println("发送完成,请查收");
    }
    @PostMapping("/webhook")
    public void webhook(@RequestBody List<AlarmMessage> alarmMessageList){
   
        lastList = alarmMessageList;
        //发送邮箱告警
        System.out.println("开始发送");
        sendMail();
    }
    private String getContent(List<AlarmMessage> lastList){
   
        StringBuilder sb = new StringBuilder();
        for (AlarmMessage alarmMessage:lastList){
   
            sb.append("scope:").append(alarmMessage.getScope())
                    .append("\nscopeId").append(alarmMessage.getScopeId())
                    .append("\nname").append(alarmMessage.getName())
                    .append("\nscopeId").append(alarmMessage.getScopeId())
                    .append("\nid0").append(alarmMessage.getId0())
                    .append("\nid1").append(alarmMessage.getId1())
                    .append("\n\n------------------------\n\n");

        }
        return sb.toString();
    }
    @GetMapping("/show")
    public List<AlarmMessage> show(){
   
        return lastList;
    }
}

在这里插入图片描述
查看邮箱,就收到了

相关推荐

  1. Skywalking告警规则示例

    2023-12-06 13:32:03       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 13:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 13:32:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 13:32:03       82 阅读
  4. Python语言-面向对象

    2023-12-06 13:32:03       91 阅读

热门阅读

  1. Django 用户验证与权限管理

    2023-12-06 13:32:03       55 阅读
  2. Django回顾【三】

    2023-12-06 13:32:03       57 阅读
  3. Perl | Multi-line Strings | Here Document

    2023-12-06 13:32:03       70 阅读
  4. photoshop实现抠图的步骤

    2023-12-06 13:32:03       56 阅读
  5. GNU Radio 教程

    2023-12-06 13:32:03       53 阅读
  6. 数据结构—两个有序单链表的合并排序算法

    2023-12-06 13:32:03       47 阅读
  7. 【LeetCode】203. 移除链表元素

    2023-12-06 13:32:03       56 阅读