- Fix dateStart only 1 view if is the same day - Sending a message from the Event Page: to a user or to a "Event" - Add button "Ask Info" - Starting view msg into the messagepopup component
252 lines
7.4 KiB
JavaScript
252 lines
7.4 KiB
JavaScript
const tools = require('./tools/general');
|
|
|
|
require('./config/config');
|
|
|
|
const Email = require('email-templates');
|
|
|
|
var i18n = require("i18n");
|
|
|
|
|
|
const previewEmail = require('preview-email');
|
|
const nodemailer = require("nodemailer");
|
|
|
|
const transport_preview = nodemailer.createTransport({
|
|
jsonTransport: true
|
|
});
|
|
|
|
// create reusable transport method (opens pool of SMTP connections)
|
|
var smtpTransport = nodemailer.createTransport({
|
|
service: 'Gmail',
|
|
auth: {
|
|
user: process.env.EMAIL_FROM,
|
|
pass: process.env.EMAIL_PW
|
|
}
|
|
});
|
|
|
|
function checkifSendEmail() {
|
|
return process.env.SEND_EMAIL === "1";
|
|
//return false;
|
|
}
|
|
|
|
|
|
module.exports = {
|
|
sendEmail_base: function (template, user, to, mylocalsconf, replyTo) {
|
|
|
|
console.log('mylocalsconf', mylocalsconf);
|
|
|
|
// console.log("check EMAIL :" + checkifSendEmail());
|
|
|
|
const email = new Email({
|
|
message: {
|
|
from: process.env.EMAIL_FROM, // sender address
|
|
headers: {
|
|
'Reply-To': replyTo
|
|
}
|
|
},
|
|
send: checkifSendEmail(),
|
|
preview: !checkifSendEmail(),
|
|
transport: {
|
|
service: 'Gmail',
|
|
auth: {
|
|
user: process.env.EMAIL_FROM,
|
|
pass: process.env.EMAIL_PW
|
|
}
|
|
},
|
|
// htmlToText: false
|
|
});
|
|
|
|
return email
|
|
.send({
|
|
template: template,
|
|
message: {
|
|
to: to,
|
|
},
|
|
locals: mylocalsconf,
|
|
})
|
|
.then((ris) => {
|
|
return !!ris
|
|
})
|
|
.catch((err) => {
|
|
console.error(err);
|
|
return false
|
|
});
|
|
},
|
|
|
|
sendEmail_Normale: function (to, subject, html, replyTo) {
|
|
|
|
// setup e-mail data with unicode symbols
|
|
var mailOptions = {
|
|
from: process.env.EMAIL_FROM, // sender address
|
|
to: to,
|
|
generateTextFromHTML: true,
|
|
subject: subject,
|
|
html: html,
|
|
};
|
|
|
|
if (replyTo)
|
|
mailOptions['reply-to'] = replyTo;
|
|
|
|
if (process.env.SEND_EMAIL === 1) {
|
|
console.log("SEND EMAIL smtpTransport");
|
|
// send mail with defined transport object
|
|
smtpTransport.sendMail(mailOptions, function (error, response) {
|
|
if (error) {
|
|
console.log(error);
|
|
} else {
|
|
console.log("Message sent: " + response);
|
|
}
|
|
});
|
|
} else {
|
|
if (process.env.PROVA_EMAIL_TEMPLATE !== "1")
|
|
previewEmail(mailOptions).then(console.log).catch(console.error);
|
|
else
|
|
transport_preview.sendMail(mailOptions).then(console.log).catch(console.error);
|
|
}
|
|
},
|
|
// getHostByIdApp: function (idapp) {
|
|
// if (idapp === 1) {
|
|
// let siteport = (process.env.PORT_APP1 !== "0") ? (':' + process.env.PORT_APP1) : "";
|
|
// return process.env.URLBASE_APP1 + siteport;
|
|
// } else {
|
|
// return ""
|
|
// }
|
|
// },
|
|
|
|
getlinkReg: function (idapp, idreg) {
|
|
strlinkreg = tools.getHostByIdApp(idapp) + process.env.LINKVERIF_REG + `?idapp=${idapp}&idlink=${idreg}`;
|
|
return strlinkreg;
|
|
},
|
|
getlinkRequestNewPassword: function (idapp, user, tokenforgot) {
|
|
strlinkreg = tools.getHostByIdApp(idapp) + "/#" + process.env.LINK_REQUEST_NEWPASSWORD + `?idapp=${idapp}&username=${user}&=tokenforgot=${tokenforgot}`;
|
|
return strlinkreg;
|
|
},
|
|
sendEmail_Registration: function (lang, emailto, user, idapp, idreg) {
|
|
|
|
console.log('idapp', idapp, tools.getNomeAppByIdApp(idapp));
|
|
|
|
mylocalsconf = {
|
|
locale: lang,
|
|
nomeapp: tools.getNomeAppByIdApp(idapp),
|
|
strlinkreg: this.getlinkReg(idapp, idreg),
|
|
username: user.username,
|
|
name: user.name,
|
|
surname: user.surname,
|
|
forgetpwd: "",
|
|
emailto: emailto,
|
|
};
|
|
|
|
this.sendEmail_base('registration/' + lang, user, emailto, mylocalsconf, tools.getreplyToEmailByIdApp(idapp));
|
|
|
|
// Send to the Admin an Email
|
|
this.sendEmail_base('admin/registration/' + lang, user, tools.getAdminEmailByIdApp(idapp), mylocalsconf, '');
|
|
|
|
if (tools.isManagAndAdminDifferent(idapp)) {
|
|
this.sendEmail_base('admin/registration/' + lang, user, tools.getManagerEmailByIdApp(idapp), mylocalsconf, '');
|
|
}
|
|
},
|
|
sendEmail_RequestNewPassword: function (lang, emailto, idapp, tokenforgot) {
|
|
|
|
mylocalsconf = {
|
|
locale: lang,
|
|
nomeapp: tools.getNomeAppByIdApp(idapp),
|
|
user: user,
|
|
strlinksetpassword: this.getlinkRequestNewPassword(idapp, user, tokenforgot),
|
|
emailto: emailto,
|
|
};
|
|
|
|
this.sendEmail_base('resetpwd/' + lang, user, emailto, mylocalsconf, '');
|
|
},
|
|
|
|
sendEmail_Booking: function (res, lang, emailto, user, idapp, recbooking) {
|
|
|
|
tools.mylog('sendEmail_Booking');
|
|
tools.mylog('tools.getNomeAppByIdApp(idapp)', tools.getNomeAppByIdApp(idapp), idapp);
|
|
|
|
mylocalsconf = {
|
|
locale: lang,
|
|
nomeapp: tools.getNomeAppByIdApp(idapp),
|
|
name: user.name,
|
|
surname: user.surname,
|
|
emailto: emailto,
|
|
participants: '',
|
|
msgbooking: recbooking.msgbooking,
|
|
eventtextplain: tools.removeSpecialCharForEmail(recbooking.infoevent),
|
|
event: recbooking.infoevent,
|
|
};
|
|
|
|
if (recbooking.numpeople > 1)
|
|
mylocalsconf.participants = recbooking.numpeople.toString() + ' ' + res.__("partecipanti");
|
|
|
|
let texthtml = '';
|
|
if (recbooking.modified) {
|
|
texthtml = 'modifybooking';
|
|
}else {
|
|
texthtml = 'makebooking';
|
|
}
|
|
|
|
this.sendEmail_base('booking/'+texthtml+'/' + lang, user, emailto, mylocalsconf, tools.getreplyToEmailByIdApp(idapp));
|
|
|
|
// Send Email also to the Admin
|
|
this.sendEmail_base('admin/'+texthtml+'/' + lang, user, tools.getAdminEmailByIdApp(idapp), mylocalsconf, '');
|
|
|
|
if (tools.isManagAndAdminDifferent(idapp)) {
|
|
this.sendEmail_base('admin/'+texthtml+'/' + lang, user, tools.getManagerEmailByIdApp(idapp), mylocalsconf, '');
|
|
}
|
|
|
|
},
|
|
|
|
sendEmail_CancelBooking: function (res, lang, emailto, user, idapp, recbooking) {
|
|
|
|
tools.mylog('sendEmail_CancelBooking');
|
|
|
|
mylocalsconf = {
|
|
locale: lang,
|
|
nomeapp: tools.getNomeAppByIdApp(idapp),
|
|
name: user.name,
|
|
surname: user.surname,
|
|
emailto: emailto,
|
|
event: recbooking.infoevent,
|
|
participants: '',
|
|
eventtextplain: tools.removeSpecialCharForEmail(recbooking.infoevent),
|
|
};
|
|
|
|
if (recbooking.numpeople > 1)
|
|
mylocalsconf.participants = recbooking.numpeople.toString() + ' ' + res.__("partecipanti");
|
|
|
|
this.sendEmail_base('booking/cancelbooking/' + lang, user, emailto, mylocalsconf, tools.getreplyToEmailByIdApp(idapp));
|
|
|
|
// Send Email also to the Admin
|
|
this.sendEmail_base('admin/cancelbooking/' + lang, user, tools.getAdminEmailByIdApp(idapp), mylocalsconf, '');
|
|
|
|
if (tools.isManagAndAdminDifferent(idapp)) {
|
|
this.sendEmail_base('admin/cancelbooking/' + lang, user, tools.getManagerEmailByIdApp(idapp), mylocalsconf, '');
|
|
}
|
|
},
|
|
|
|
sendEmail_Msg: function (res, lang, emailto, user, idapp, recmsg) {
|
|
|
|
tools.mylog('sendEmail_Msg');
|
|
tools.mylog('tools.getNomeAppByIdApp(idapp)', tools.getNomeAppByIdApp(idapp), idapp);
|
|
|
|
mylocalsconf = {
|
|
locale: lang,
|
|
nomeapp: tools.getNomeAppByIdApp(idapp),
|
|
name: user.name,
|
|
surname: user.surname,
|
|
usernameorig: user.name + ' ' + user.surname,
|
|
emailto: emailto,
|
|
message: recmsg.message,
|
|
infoevent: recmsg.origin.infoevent,
|
|
strlinkreply: tools.getHostByIdApp(idapp) + '/messages/' + recmsg._id
|
|
};
|
|
|
|
return this.sendEmail_base('msg/sendmsg/' + lang, user, emailto, mylocalsconf, tools.getreplyToEmailByIdApp(idapp));
|
|
|
|
// Send Email also to the Admin
|
|
// this.sendEmail_base('admin/sendmsg/' + lang, user, tools.getAdminEmailByIdApp(idapp), mylocalsconf);
|
|
},
|
|
|
|
|
|
};
|
|
|