【问题标题】:Use email template for contact form using Express/Sendgrid使用 Express/Sendgrid 将电子邮件模板用于联系表单
【发布时间】:2015-05-31 15:56:26
【问题描述】:

我有一个使用Node Sendgrid helper library 的简单联系表。

我想使用一个模板email/contact.jade,它可以编译为 HTML 并添加正确的上下文。我知道它需要输入payload.html 值,但是我一直不知道如何使用模板发送电子邮件。

routes.js

app.route('/contact')
  .post(function(req, res) {
    var template = 'email/contact.jade';

    var payload = {
      to: req.body.email,
      from: 'example@example.com',
      subject: req.body.subject,
      html: req.body.message
    };

    var email = new sendgridClient.Email(payload);

    sendgridClient.send(email, function(err, json) {
      if (err) { 
        return console.error(err);
      } else {
        res.redirect('/thanks');
      }
    });
  });

电子邮件/contact.jade

p Thanks
p Name {{ name }}
p Email {{ email }}
p Subject {{ subject }}
p Message {{ message }}

【问题讨论】:

    标签: javascript node.js express pug sendgrid


    【解决方案1】:

    首先我不确定你的jade语法是否正确。你可以试试这个:

    电子邮件/contact.jade

    p Thanks
    p Name #{name}
    p Email #{email}
    p Subject #{subject}
    p Message #{message}
    

    并将其呈现为 HTML:

    var jade = require('jade');
    var templatePath = __dirname + '/contact.jade';
    
    app.route('/contact')
      .post(function(req, res) {    
        var payload = {
          to: req.body.email,
          from: 'example@example.com',
          subject: req.body.subject,
          html: jade.renderFile(templatePath, req.body)
        };
        //...
      });
    

    【讨论】:

    • 玉模板你说得对。但是,我必须这样做才能使其正常工作:var template = fs.readFileSync(__dirname + '/contact.jade'),因为我不断收到“ENOENT,没有这样的文件或目录”
    • 我也可以做html: jade.renderFile(__dirname + '/contact.jade', req.body)。使用renderFile 方法jade-lang.com/api
    • 是的,renderFIle 也可以,而且可能更好,因为它可以让 Jade 更容易缓存您的模板。考虑到这一点,我对答案进行了一些编辑。
    • 谢谢,这很有帮助。我猜你不需要fs 库或var template = 'email/contact.jade' 语句。
    • 我已经进一步清理了答案。如果您认为它有帮助,请点赞/标记为答案,以便其他人可以看到:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多