Merge pull request #3 from DigitalPavilion/postfix-mailing

Postfix mailing
pull/231/head
chelid 2022-09-14 13:31:54 +03:00 committed by GitHub
commit abe019d696
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 8 deletions

View File

@ -5,7 +5,15 @@ var crontab = require("../crontab.js");
var nodemailer = require('nodemailer');
crontab.get_crontab(process.argv[process.argv.length -1 -2], function(job){
if (job.mailing.transporterStr == 'sendmail') { // allow sending mail with Postfix
if (!job.mailing || job.mailing == undefined || job.mailing.mailOptions == undefined) {
var mailOptions = defaults.mailOptions;
var transporterStr = defaults.transporterStr;
} else {
var mailOptions = job.mailing.mailOptions;
var transporterStr = job.mailing.transporterStr ;
}
if (transporterStr == 'sendmail') { // allow sending mail with Postfix, and this is the default option
var transporter = nodemailer.createTransport({
sendmail: true,
newline: 'unix',
@ -15,10 +23,21 @@ crontab.get_crontab(process.argv[process.argv.length -1 -2], function(job){
} else {
var transporter = nodemailer.createTransport(job.mailing.transporterStr);
}
var mailOptions = job.mailing.mailOptions;
mailOptions.subject = job.name + ' ' + mailOptions.subject;
mailOptions.text = 'Command: ' + job.command + "\n" + mailOptions.text;
mailOptions.html = 'Command: ' + job.command + '<br/>' + mailOptions.html;
const keywordsMap = {
'#COMMAND_NAME#': job.name,
'#COMMAND#': job.command,
'#HASHED_EMAIL#': Buffer.from(mailOptions.to).toString('base64')
};
function replaceAll(str,mapObj){
var re = new RegExp(Object.keys(mapObj).join("|"),"gi");
return str.replace(re, function(matched){
return mapObj[matched];
});
}
mailOptions.subject = replaceAll(mailOptions.subject, keywordsMap);
mailOptions.text = replaceAll(mailOptions.text, keywordsMap);
mailOptions.html = replaceAll(mailOptions.html, keywordsMap);
mailOptions.attachments = [{filename: "stdout.txt", path: process.argv[process.argv.length -1 -1]}, {filename: "stderr.txt", path: process.argv[process.argv.length -1]}];

View File

@ -152,9 +152,9 @@ make_command = function(tab) {
"; fi";
}
if (tab.mailing && JSON.stringify(tab.mailing) != "{}"){
crontab_job_string += "; /usr/local/bin/node " + __dirname + "/bin/crontab-ui-mailer.js " + tab._id + " " + stdout + " " + stderr;
}
//if (tab.mailing && JSON.stringify(tab.mailing) != "{}"){
crontab_job_string += "; CRON_DB_PATH=" + exports.db_folder + " /usr/local/bin/node " + __dirname + "/bin/crontab-ui-mailer.js " + tab._id + " " + stdout + " " + stderr;
//}
return crontab_job_string;
}