我想导出一个使用Sendgrid发送电子邮件的函数。我创建了一个我创建这个函数的外部文件。数据(用作参数的凭证)我放在其他文件中,我也将其导入。模块导出功能
我没有收到任何错误,但电子邮件根本没有发送。
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);});
}
};
主文件(其中我导入功能):
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));
});
你能后整个'utilemail.js '文件内容?例如,那里定义了“sg”?关闭'};'在哪里打开? –
我在主文件中定义了sg,在这里我导入了utilemail.js文件。 utilemail.js文件的完整代码可以在我的文章中找到。这就是我所有的 –
不,因为你通过'utilemail'调用导出的函数(通过执行require('../service/ utilemail')(...)'),应该有一个缺失的部分你的问题。 –