- aggiornato sistema per inviare le newsletter !

This commit is contained in:
Surya Paolo
2024-02-08 01:34:30 +01:00
parent 2151502d30
commit dacfc5a844
8 changed files with 223 additions and 85 deletions

View File

@@ -540,7 +540,7 @@ module.exports = {
// Check if exist to the Mailing List
let myperson = await MailingList.findByHash(idapp, hash);
if (!myperson || !myperson.statesub || !myperson.wrongerr) {
if (!myperson || !myperson.news_on || !myperson.email_errata) {
if (!myperson) {
myperson = new MailingList({
name: mylocalsconf.name,
@@ -557,8 +557,8 @@ module.exports = {
}
myperson.idapp = idapp;
myperson.statesub = true; // subscription
myperson.wrongerr = false;
myperson.news_on = true; // subscription
myperson.email_errata = false;
// Add/save new record to the DB MailingList
const res = await myperson.save();
@@ -597,9 +597,9 @@ module.exports = {
}
const fields_to_update = {
statesub: false,
news_on: false,
};
let myperson = await MailingList.findOneAndUpdate({
let myperson = await User.findOneAndUpdate({
idapp,
hash: hashemail,
}, { $set: fields_to_update }, { new: false });
@@ -618,16 +618,20 @@ module.exports = {
},
fieldsloop: function (mylocalsconf, myvar) {
const baseurl = tools.getHostByIdApp(mylocalsconf.idapp);
const urlunsibscribe = baseurl + '/unsubscribe?em=' + mylocalsconf.hashemail + '&mc=' + mylocalsconf.dataemail.mailchimpactive +
'&email=' + mylocalsconf.emailto;
let out = '';
try {
out = myvar.replace('{urlunsubscribe}', tools.getUnsubsribeUrl(mylocalsconf));
out = out.replace('{urlunsubscribe_user}', tools.getUnsubsribeUrl_User({ idapp: mylocalsconf.idapp, email: mylocalsconf.emailto, username: mylocalsconf.username, name: mylocalsconf.name, surname: mylocalsconf.surname }));
let out = myvar.replace('{urlunsubscribe}', urlunsibscribe);
out = out.replace('{email}', mylocalsconf.emailto);
out = out.replace('{username}', mylocalsconf.username);
out = out.replace('{name}', mylocalsconf.name ? mylocalsconf.name : mylocalsconf.username);
out = out.replace('{surname}', mylocalsconf.surname ? mylocalsconf.surname : '');
out = out.replace('{aportador_solidario}', mylocalsconf.aportador_solidario ? mylocalsconf.aportador_solidario : '');
out = out.replace('{email}', mylocalsconf.emailto);
out = out.replace('{username}', mylocalsconf.username);
out = out.replace('{name}', mylocalsconf.name ? mylocalsconf.name : mylocalsconf.username);
out = out.replace('{surname}', mylocalsconf.surname ? mylocalsconf.surname : '');
out = out.replace('{aportador_solidario}', mylocalsconf.aportador_solidario ? mylocalsconf.aportador_solidario : '');
} catch (e) {
console.error('err fieldsloop', e);
return out;
}
return out;
},
@@ -641,6 +645,10 @@ module.exports = {
if (mylocalsconf.dataemail.templ)
mylocalsconf.dataemail.templ.testoheadermail_out = !!mylocalsconf.dataemail.templ.testoheadermail ? this.fieldsloop(mylocalsconf,
mylocalsconf.dataemail.templ.testoheadermail) : '';
mylocalsconf.dataemail.templ.content = !!mylocalsconf.dataemail.templ.content ? this.fieldsloop(mylocalsconf,
mylocalsconf.dataemail.templ.content) : '';
} catch (e) {
console.error('Error replacefields: ' + e);
}
@@ -896,7 +904,7 @@ module.exports = {
}
//Put the result in the database, to check if is sent or not.
const updateml = await MailingList.findOneAndUpdate({
const updateml = await User.findOneAndUpdate({
idapp,
email: user.email,
}, { $set: { lastid_newstosent: ObjectID(id_newstosent) } }, { new: false });
@@ -949,7 +957,7 @@ module.exports = {
return await Newstosent.findNewsletter_To_Send(idapp).then((rec) => {
if (rec)
this.sendNewsletter(rec);
this.sendNewsletter(rec, idapp);
});
}
,
@@ -993,6 +1001,7 @@ module.exports = {
arrevents: myarrevents,
name: 'TestNome',
surname: 'TestCognome',
username: await User.getUsernameByEmail(idapp, myemail),
emailto: myemail,
baseurl: tools.getHostByIdApp(idapp),
hashemail: tools.getHash(myemail),
@@ -1005,7 +1014,7 @@ module.exports = {
mylocalsconf.dataemail.subject = mylocalsconf.dataemail && mylocalsconf.dataemail.templ ? mylocalsconf.dataemail.templ.subject : '',
this.replacefields(mylocalsconf);
this.replacefields(mylocalsconf);
const smtpTransport = this.getTransport(mylocalsconf);