Reputation: 2207
I am trying to export a function which sends an email using Sendgrid. I created an external file in which I created this function. The data( credentials used as parameters) I put in other file and I, also, imported it.
I get no errors, but the email is simply not sending.
SEND_MAIL:
module.exports = {
'sendMail': function(subject, sender_email, email, link, username, template){
var request = sg.emptyRequest();
request.body = {
subject: subject,
from: {
email: sender_email
},
personalizations: [
{
to: [{
email: email
}],
substitutions: {
'[link]' : link,
'[email]' : email,
'[username]': username
}
}
],
template_id: template
};
request.method = "POST";
request.path = "/v3/mail/send";
return sg.API(request).then(function (response) {
console.log(response);
}).catch(function(err){console.log(err.response.body.errors);});
}
};
THE MAIN FILE (in which I import the function):
var config = require('../config/config.json');
var utils= require('../service/utils');
var api_key = config.sendgrid.key;
var sg = require('sendgrid')(api_key);
.....
function( new_user ){
var template = utils.new_account_template;
var sender_email= utils.new_account_email;
var link = utils.new_account_link;
var subject = utils.new_account_subject;
var email = new_user.email;
var username = new_user.username;
var utilemail = require('../service/utilemail')(subject, sender_email, email, link, username, template);
utilemail.sendMail(subject, sender_email, email, link, username, template);
return res.json( rs.success({ jwt: new_user.getJwt() }) );
}).catch(function( err ){
return res.json( rs.errorCode(err.message) );
});
Upvotes: 1
Views: 299
Reputation: 831
Try this:
var sendMail= require('../service/utilemail').sendMail;
sendMail(subject, sender_email, email, link, username, template)
.then(function(){
return res.json( rs.success({ jwt: new_user.getJwt() }) );
}, function(error){
return res.json( rs.errorCode(err.message) );
})
Upvotes: 2