node.js - 用nodemailer写了一个工程监控遇到的一些问题

 迷蒙的天蝎 发布于 2022-11-04 12:46
var http = require('http');
var nodemailer=require('nodemailer');
var checkfile="http://127.0.0.1:8081/assets/css/main.css?1.2.1"; //请求工程的静态文件,用于判断工程是否挂掉
var erroroption={
    from:'server',
    to:'xxxxx@qq.com',
    cc:'xxxxx@qq.com,xxxxxx@qq.com',
    subject:"工程出错",
    text:"服务器挂掉了,请尽快处理。"
};
var restartoption={
    from:'server',
    to:'xxxxx@qq.com',
    cc:'xxxxx@qq.com,xxxxxx@qq.com',
    subject:"工程恢复",
    text:"服务器已恢复。"
};
var mail=nodemailer.createTransport({
    host: "smtp.qq.com",
    server:'QQ',
    port:465,
    secureConnection:true, 
    auth:{
        user:'xxxxxxx@qq.com',
        pass:'xxxxxxxx'
    }
});
var restart=true;//判断程序是否已启动
var timer = setInterval(function () {
    http.get(checkfile, function (res) {
        if(!restart){
            mail.sendMail(restartoption, function (error, info) {
                var date=new Date();
                console.log(date+'工程已恢复 ');
                restart = true;
            });
        }
    }).on('error', function (e) {
        if(restart) {
            mail.sendMail(erroroption, function (error, info) {
                var date=new Date();
                console.log(date+'工程挂掉了');
                restart = false;
            });
        }
    });
}, 60*1000);//检测频率 60S一次

最近用nodemailer写了一个监控工程的功能。主要是实现工程挂掉的时候,发邮件提醒,然后工程重启的时候再发邮件通知。但是遇到了一些问题,我这里设定了每次挂掉或者重启只发一次邮件,但是有时候会连续发几封,这是为什么?还有有时候callback都执行了,但是邮件却收不到。

1 个回答
  • 发邮件是很慢的,执行完还需要服务器响应呢,很正常的。

    2022-11-12 01:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有