无法在手柄中使用部分电子邮件模板

时间:2016-11-09 09:34:26

标签: handlebars.js email-integration partials

我正在尝试在电子邮件模板中使用部分内容。我正在使用' express-handlebars'作为应用级别的模板引擎

exphbs = require('express-handlebars')
var viewsPath = path.join(__dirname, '/app/views');  
app.set('views', viewsPath);  
var hbs = exphbs.create({  
  defaultLayout: 'main',  
  layoutsDir: viewsPath + '/layouts',  
  partialsDir: viewsPath + '/partials'
});  
app.engine('handlebars', hbs.engine);  
app.set('view engine', 'handlebars');

我有一个帮助发送电子邮件如下:

var templateDir = path.join(__dirname, '../views/email_templates');
var EmailTemplate = require('email-templates').EmailTemplate;

function sendEmail(options,done){
      var template = new EmailTemplate(templateDir + "/" + options.template);
      template.render(options, function(err, result){
        var message = {
          'to' : [options.toEmail],
          'from_email' : 'support@xyz.com',
          'from_name' : 'XYZ',
          'headers' : {
            "Reply-To" : 'support@xyz.com'
          },
          'subject' : options.subject,
          'html' : result.html
        };

          var to_address = message.to[0].email;
          ses_client.sendEmail({
            'from' : message.from_email,
            'replyTo' : message.from_email,
            'subject' : message.subject,  
            'to' : to_address,
            'message' : message.html
            },function (err, data,res){
              if(err) logger.log('error', 'Error in sending email' + err);
              return done();
          });
      });
}

当我在html.handlebars模板中包含部分{{> myPartial}},我收到以下错误:无法找到部分myPartial

我已经验证了部分文件与上面指定的路径相同 " partialsDir:viewsPath +' / partials'"

如何让我的部分内容在电子邮件模板中呈现?

我已尝试使用https://stackoverflow.com/a/12700409/6165688,但仍然遇到部分未找到的相同错误。

1 个答案:

答案 0 :(得分:0)

最后让部分工作用于我的电子邮件模板。我提到this链接并从我之前使用的nodemailer切换到email-templates npm。