m2pool_backend_app/src/notice.js

85 lines
2.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const Init = require("./init");
const nodemailer = require("nodemailer");
const Times = require("../public/times");
const conf = {
create_config: {
service: "qq",
secureConnection: true,
port: 465,
auth: {
user: "393768033@qq.com",
// pass: "hyaefuvaiudcbihj",
pass:"anuflpiziamwcaia",
},
},
symbol:["nexa", "rxd", "dgbs", "dgbq", "dgbo", "grs", "mona", "enx"],
receiver: "709387953@qq.com, liarsars@gmail.com"
};
class Notice extends Init {
constructor(coin) {
super(coin, "notice");
this.conf = conf;
this.transporter = nodemailer.createTransport(conf.create_config);
}
construct_mail(receiver, subject, text, html) {
return {
from: this.transporter.options.auth.user,
to: receiver,
subject: subject,
text: text,
html: html
};
}
async send_mail(mailOptions) {
if (!mailOptions.to) {
throw new Error("未指定收件人");
}
try {
const info = await this.transporter.sendMail(mailOptions);
console.log(`${Date.now()} 检测到未转账信息邮件ID: ${info.messageId}`);
} catch (err) {
console.error("邮件发送失败:", err);
}
}
async query_walletout(date) {
try {
const sql = `SELECT * FROM wallet_outv2 WHERE DATE(date) = ?;`;
const data = await this.distribution.exec(sql, [date]);
return data.length > 0 ? data : false;
} catch (err) {
throw err;
}
}
async main() {
try {
const date = Times.times()[2];
const data = await this.query_walletout(date);
if (!data) return;
const symbol = new Set(data.map(item => item.coin));
const transfer_err_coins = (this.conf.symbol || []).filter(item => !symbol.has(item));
if (transfer_err_coins.length === 0) return;
const subject = `今日有未转账币种`;
const text = `今日有未转账币种`;
const html = `今日未转账币种:${transfer_err_coins.join(", ")}<h1>测试数据</h1>`;
const mailOptions = this.construct_mail(this.conf.receiver, subject, text, html);
await this.send_mail(mailOptions);
return
} catch (err) {
console.error("主任务执行错误:", err);
}
}
}
module.exports = Notice