Files
old-tellall/backend/helpers/email.js

76 lines
2.2 KiB
JavaScript
Raw Normal View History

2018-01-19 16:29:47 +01:00
const nodemailer = require ('nodemailer');
2018-01-19 20:23:50 +01:00
const emailConfig = require('../config/email');
2018-01-19 16:29:47 +01:00
module.exports = {
2018-01-19 20:05:49 +01:00
transformEmailFromAlexaResponse: function (email) {
2018-01-19 16:29:47 +01:00
//email from alexa response will contain words instead of symbols, like :
//at = @
//underscore = _
//dash = -
//dot = .
//TODO: This list should be longer
let transformedEmail = email
.replace (/\s/g, '') //remove all spaces
2018-01-19 16:29:47 +01:00
.replace (/at/gi, '@')
.replace (/underscore/gi, '_')
.replace (/dash/gi, '-')
.replace (/dot/gi, '.');
2018-01-19 20:05:49 +01:00
return transformedEmail;
},
isEmailValid: function (email) {
console.log ('Email to validate : ' + email);
let validEmailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
2018-01-19 16:29:47 +01:00
return validEmailRegex.test (email);
2018-01-19 16:29:47 +01:00
},
2018-01-23 12:18:20 +01:00
sendEmail: function (name, fromEmail, message, toEmail) {
2018-01-19 16:29:47 +01:00
return new Promise ((resolve, reject) => {
2018-01-19 20:28:26 +01:00
fromEmail = this.transformEmailFromAlexaResponse(fromEmail);
2018-01-19 16:29:47 +01:00
let messageBody =
2018-01-19 19:50:21 +01:00
'Hello. User left you a message on Saburly service using Alexa skill. \r\nMessage : ' +
message +
'\r\nName : ' +
2018-01-19 16:29:47 +01:00
name +
2018-01-19 19:50:21 +01:00
'\r\nEmail : ' +
fromEmail +
'\r\nYour Saburly team';
let messageBodyHTML =
'<p>Hello. User left you a message on Saburly service using Alexa skill.</p><br/><b>Message : </b><br/><p>' +
message +
2018-01-19 19:53:49 +01:00
'</p><br/><b>Name : </b>' +
2018-01-19 19:50:21 +01:00
name +
2018-01-19 19:53:49 +01:00
'<br/><b>Email : </b>' +
2018-01-19 19:50:21 +01:00
fromEmail +
2018-01-19 20:23:50 +01:00
'<br/><br/><b>Your Saburly team</b>';
2018-01-19 16:29:47 +01:00
let transporter = nodemailer.createTransport ({
2018-01-19 20:23:50 +01:00
host: emailConfig.SMTP_HOST,
port: emailConfig.PORT,
secure: emailConfig.SECURE,
auth: emailConfig.AUTH,
2018-01-19 16:29:47 +01:00
});
var mailOptions = {
2018-01-19 20:23:50 +01:00
from: emailConfig.FROM_EMAIL,
2018-01-19 16:29:47 +01:00
replyTo: fromEmail,
to: toEmail,
2018-01-19 20:23:50 +01:00
subject: emailConfig.SUBJECT,
2018-01-19 16:29:47 +01:00
text: messageBody,
html: messageBodyHTML,
2018-01-19 16:29:47 +01:00
};
transporter.sendMail (mailOptions, (error, info) => {
if (error) {
reject (error);
} else {
resolve (info);
}
});
});
},
};