SpringBootAdmin邮件通知

发布时间:2024年01月24日

在上一篇中我们学习到了 Admin Service Clustering 分布式缓存配置 ,这一篇我们来学习,客户端离线,出现故障的时候,我们这么能及时知道呢,发现邮件通知也许是最简单的方式了!

邮件通知

邮件通知将作为使用Thymeleaf模板呈现的HTML电子邮件进行传递。要启用邮件通知
将spring-boot-starter-mail添加到admin Service 依赖中:
pom.xml:

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

配置文件中加入配置

application.properties:

spring.mail.host = smtp.163.com
spring.mail.username=miraitowa1796@163.com
spring.mail.password=xxxxxxxxx //自己的授权码
spring.boot.admin.notify.mail.to=miraitowa1796@163.com //邮件收件人
spring.boot.admin.notify.mail.from=miraitowa1796@163.com //邮件发件人

我们这里以网易邮箱来做测试,在做发送测试前,大家先去注册一下,并且在设置里面去开启服务;
在这里插入图片描述
开启后会给一个授权码,一定要保持起来,这就是配置文件中的密码,请大家注意

代码中配置通知提醒配置

客户端离线和重启的时候发送邮件通知,创建NotifierConfiguration类:

/**
 * @author qrn
 * @version 1.0
 * @date 2021/4/9 17:53
 * 邮箱事件配置: 通知提醒 每10分钟发送一次提醒
 */
@Configuration(proxyBeanMethods = false)
public class NotifierConfiguration {

    private final InstanceRepository repository;

    private final ObjectProvider<List<Notifier>> otherNotifiers;


    public NotifierConfiguration(InstanceRepository repository, ObjectProvider<List<Notifier>> otherNotifiers) {
        this.repository = repository;
        this.otherNotifiers = otherNotifiers;
    }

    @Bean
    public FilteringNotifier filteringNotifier() { // <1>
        CompositeNotifier delegate = new CompositeNotifier(this.otherNotifiers.getIfAvailable(Collections::emptyList));
        return new FilteringNotifier(delegate, this.repository);
    }

    /**
     * 重启/离线应用程序发送提醒
     * @return
     */
    @Primary
    @Bean(initMethod = "start", destroyMethod = "stop")
    public RemindingNotifier remindingNotifier() { // <2>
        RemindingNotifier notifier = new RemindingNotifier(filteringNotifier(), this.repository);
        notifier.setReminderPeriod(Duration.ofMinutes(10)); //提醒将每10分钟发送一次
        notifier.setCheckReminderInverval(Duration.ofSeconds(10)); //安排每10秒发送一次到期提醒
        return notifier;
    }
}

配置成功了之后,启动adminservice,在启动客服端,在然后停掉客户端,等待片刻,看是否会有邮件发送,如果收到那么就是配置成功了
客服端离线发送的邮件:
在这里插入图片描述
当前客户端重新启动上线发送的邮件:
在这里插入图片描述
说明上述我们配置成功了。

邮件通知配置选项

名称描述默认值
spring.boot.admin.notify.mail.enabled启用邮件通知true
spring.boot.admin.notify.mail.ignore-changes以逗号分隔的状态更改列表将被忽略。格式:“ <从状态>:<至状态>”。允许使用通配符。"UNKNOWN:UP"
spring.boot.admin.notify.mail.template用于渲染的Thymeleaf模板的资源路径。"classpath:/META-INF/spring-boot-admin-server/mail/status-changed.html"
spring.boot.admin.notify.mail.to逗号分隔的邮件收件人列表"root@localhost"
spring.boot.admin.notify.mail.cc逗号分隔的复本收件人列表
spring.boot.admin.notify.mail.from邮件发件人"Spring Boot Admin <noreply@localhost>"
spring.boot.admin.notify.mail.additional-properties可以从模板访问的其他属性

配置实例demo代码地址:
SpringBootAdminDemo
欢迎大家在下面讨论,学习。

文章来源:https://blog.csdn.net/qq_58148854/article/details/135821208
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。