mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-11-04 13:46:13 +08: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;
 |