mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-12-01 02:34:03 +00:00
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
|
const nodemailer = require("nodemailer");
|
||
|
const NotificationProvider = require("./notification-provider");
|
||
|
|
||
|
class SMTP extends NotificationProvider {
|
||
|
|
||
|
name = "smtp";
|
||
|
|
||
|
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
|
||
|
|
||
|
const config = {
|
||
|
host: notification.smtpHost,
|
||
|
port: notification.smtpPort,
|
||
|
secure: notification.smtpSecure,
|
||
|
};
|
||
|
|
||
|
// Should fix the issue in https://github.com/louislam/uptime-kuma/issues/26#issuecomment-896373904
|
||
|
if (notification.smtpUsername || notification.smtpPassword) {
|
||
|
config.auth = {
|
||
|
user: notification.smtpUsername,
|
||
|
pass: notification.smtpPassword,
|
||
|
};
|
||
|
}
|
||
|
|
||
|
let transporter = nodemailer.createTransport(config);
|
||
|
|
||
|
let bodyTextContent = msg;
|
||
|
if (heartbeatJSON) {
|
||
|
bodyTextContent = `${msg}\nTime (UTC): ${heartbeatJSON["time"]}`;
|
||
|
}
|
||
|
|
||
|
// send mail with defined transport object
|
||
|
await transporter.sendMail({
|
||
|
from: `"Uptime Kuma" <${notification.smtpFrom}>`,
|
||
|
to: notification.smtpTo,
|
||
|
subject: msg,
|
||
|
text: bodyTextContent,
|
||
|
});
|
||
|
|
||
|
return "Sent Successfully.";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = SMTP;
|