html - Sendgrid 始终发送文本电子邮件

标签 html node.js email sendgrid

我有一个 HTML sendgrid 模板,我正在使用 npm 包“sendgrid”通过 Node.js 发送它。问题是我总是收到文本格式的电子邮件,而不是 HTML,即使模板有 HTML。

代码:

var email = new sendgrid.Email({
    to      : 'me@here.com',
    from    : 'you@there.com',
    subject : 'Saying Hi with HTML Template',
    text    : 'Body'    //This is required
});

email.addFilter('templates', 'enable', 1);
email.addFilter('templates', 'template_id', '12131331.....');
email.addSubstitution('{{TOKEN1}}', 'value');

sendgrid.send(email, function(err, json) {
    if (err) { console.error(err); }
    console.log(json);
});

模板

<html>
<head><title></title></head>
<body>
  <h1>This is a test</h1>
  <p>{{TOKEN1}}</p>
  <p><a href="http://www.there.com">There</a></p>

  <div>&lt;%body%&gt;</div>
</body>
</html>

是否有我应该设置的代码参数?或者模板本身的设置允许 HTML?

最佳答案

根据documentation .只有在发送纯文本时才使用 text 属性。相反,使用 html 属性创建 HTML 消息。您可以使用内置的 setHtml 方法,如下所示:

var email     = new sendgrid.Email(); 
email.setHtml('<h1>Some html</h1>');
sendgrid.send(email, function(err, json) { });

关于html - Sendgrid 始终发送文本电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33906562/

相关文章:

node.js - Mocha.js:如何使用 Mongoose 测试随后的保存和删除

php - 实现取消订阅功能的正确方法

email - 我们如何获得 Outlook 收件人的实际电子邮件地址?

javascript - 当我尝试在 html 中调用 JavaScript 方法时,如果方法参数为 null,我的结果是方法的调用者脚本

javascript - DIV内容适合所有屏幕上的手机背景图像

node.js - 在 Apache 反向代理上运行 Socket.io

php - CodeIgniter - 通过 ajax 和代码点火器电子邮件库将内容发送到 Controller

html - 父 Div 未环绕其子 div - 缺少 clearFloat 可能是问题所在

html - 网站标题和其他次要部分的标题使用哪个标签

node.js - 与 node-gyp 的 python ctypes 等效的 javascript