javascript - Sendgrid:渲染 ejs 模板,然后作为电子邮件发送。

标签 javascript node.js email sendgrid

所以我有index.ejs,当我启动我的nodejs服务器时,它可以完美呈现:

<!DOCTYPE html>
<html>
    <head>
        <title<%= title %></title>
    </head>
    <body>
        <h1><%= title %></h1>
        <h3><%= yesterday %></h3>
        <h1> Number of Spins: <%= count %></h1>
        <h1> Active User Count: <%= userCount %></h1>
        <h1> Users that did not validate: </h1>
        <ul>

            <% for(var i=0; i<unvalid.length; i++) {%>

                <li><%= unvalid[i] %></li>
            <% } %>
        </ul>
    </body>
</html>

问题是,我想使用 Sendgrid 通过电子邮件发送此信息。到目前为止,我一直在使用 .setHTML 方法来“暴力破解”它:

email.setHtml('<h1> Spotluck Daily Report </h1><h3>'+ yesterday + '</h3><h1> Number of Spins: '+cuenta+'</h1><h1> Active User Count: '+userCount+'</h1>' +'<h1> Users that did not validate: </h1>');

但这永远不会起作用,因为它将无法渲染 ejs for 循环。所以我的问题是:如何告诉 Sendgrid 电子邮件呈现我的 ejs 并将其作为电子邮件发送,而不必求助于 .setHTML?

最佳答案

您可以使用ejs.render(str, subs) function 来实现此目的setHtml 内部。

email.setHtml(ejs.render(yourTemplate, {foo: 'bar'}));

但我建议使用 SendGrid 的 Template Engine由于我们的 Node 库 supports it .

关于javascript - Sendgrid:渲染 ejs 模板,然后作为电子邮件发送。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31592066/

相关文章:

javascript - Webpack 无法呈现快速导入

javascript - 使用 Javascript 将图像序列转换为视频

javascript - Closure 函数的输出出现奇怪的 "undefined"值

javascript - jQuery UI 选项卡不工作

node.js - 我的 ExpressJS 网站和 socket.io 端口可以使用相同的端口吗?

javascript - Node.js 中的函数参数对象与 Chrome 的 JavaScript 不同

javascript - Node.js 应用给出 ERR_EMPTY_RESPONSE

email - 如何找到雅虎邮件或gmail的电子邮件发件人的IP地址?

php - 创建一个Web服务来发送数据库日报的电子邮件

java - 不使用 JavaMail 通过 Gmail 发送电子邮件