przygotowanie masowej wysyłki

main
kry008 2025-01-03 09:04:56 +01:00
parent 5e32104549
commit 564ee01f7f
2 changed files with 68 additions and 2 deletions

View File

@ -454,6 +454,38 @@ CREATE OR REPLACE VIEW \`sumy\` AS SELECT \`rozliczenie\`.\`wolontariuszID\` AS
return toSend; return toSend;
} }
function massEmail($emaile = [], $tytul = "Powiadomienie od sztabu", $tresc = "Brak treści wiadomości")
{
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: process.env.SMTPHOST,
port: process.env.SMTPPORT,
secure: true,
auth: {
user: process.env.SMTPLOGIN,
pass: process.env.SMTPPASS
}
});
$emaile.forEach(element => {
const mailOptions = {
from: process.env.SMTPLOGIN,
bcc: element,
subject: $tytul,
html: '<img src="' + process.env.LOGO + '" height="150px" style="display: block; margin-left: auto; margin-right: auto;"><h1 style="text-align: center;">' + $tytul + '</h1><br><div id="main">' + $tresc + '</div><p style="text-align: center;">Pozdrawiamy,<br>' + process.env.SZTAB + '</p>' + footerHtml(0,1)
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
loger(fs, 'Błąd wysyłania maila do ' + element, 'error');
} else {
console.log('Email został wysłany: ' + info.response);
loger(fs, 'Email został wysłany do ' + element + ' ' + info.response, 'info');
}
});
});
}
exports.headerHtml = headerHtml; exports.headerHtml = headerHtml;
exports.menuHtml = menuHtml; exports.menuHtml = menuHtml;
exports.footerHtml = footerHtml; exports.footerHtml = footerHtml;
@ -466,3 +498,4 @@ exports.sendToDiscord = sendToDiscord;
exports.sendEmail = sendEmail; exports.sendEmail = sendEmail;
exports.checkSendEmail = checkSendEmail; exports.checkSendEmail = checkSendEmail;
exports.baza = baza; exports.baza = baza;
exports.massEmail = massEmail;

View File

@ -32,7 +32,7 @@ app.use(fileUpload({
})); }));
//import functions from func.js //import functions from func.js
const {headerHtml, menuHtml, footerHtml, checkPesel, loger, telefon, sendToDiscord, sendEmail, makeid, checkSendEmail, baza} = require('./func.js'); const {headerHtml, menuHtml, footerHtml, checkPesel, loger, telefon, sendToDiscord, sendEmail, makeid, checkSendEmail, baza, massEmail} = require('./func.js');
//function loger(fs, text, type = 'info') //function loger(fs, text, type = 'info')
panelRouter.use(function(req, res, next) { panelRouter.use(function(req, res, next) {
var cookies = cookie.parse(req.headers.cookie || ''); var cookies = cookie.parse(req.headers.cookie || '');
@ -1723,4 +1723,37 @@ panelRouter.all('/usunWolontariuszy', function(req, res) {
}); });
}) })
panelRouter.get('/wyslijEmaile', function(req, res) {
//pobierz tytul i treść emaila, a potem bobierz wszystkie emaile (unikalne) i wyslij
//treść uzupełnij za pomocą quill
var toReturn = headerHtml("Wysyłanie emaili");
toReturn += menuHtml(1);
toReturn += '<div class="content">';
toReturn += '<h1>Wysyłanie emaili</h1>';
toReturn += '<form action="/panel/wyslijEmaile" method="POST">';
toReturn += '<table class="dane">';
toReturn += '<tr><td>Temat</td><td><input type="text" name="temat"></td></tr>';
toReturn += '<tr><td>Treść</td><td><div id="editor"></div><textarea name="tresc" style="display:none;"></textarea></td></tr>';
toReturn += '</table>';
toReturn += '<input type="submit" value="Wyślij">';
toReturn += '</form>';
toReturn += '<link href="https://cdn.jsdelivr.net/npm/quill@2.0.3/dist/quill.snow.css" rel="stylesheet" />';
toReturn += '<script src="https://cdn.jsdelivr.net/npm/quill@2.0.3/dist/quill.js"></script>';
toReturn += '<script>';
toReturn += 'var quill = new Quill("#editor", {';
toReturn += 'theme: "snow",';
toReturn += 'modules: {';
toReturn += 'toolbar: [';
toReturn += '[{ header: [1, 2, 3, false] }],';
toReturn += `['bold', 'italic', 'underline', 'strike', 'blockquote', 'code-block'],`;
toReturn += `[{ list: 'ordered'}`;
toReturn += `, { list: 'bullet' }]`;
toReturn += `['link', 'image', 'video']`;
toReturn += ']';
toReturn += '}';
toReturn += '});';
toReturn += '</div>';
toReturn += footerHtml(1);
});
module.exports = panelRouter; module.exports = panelRouter;