Sendgrid始终发送文本电子邮件

时间:2015-11-25 00:38:44

标签: 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?

2 个答案:

答案 0 :(得分:4)

根据documentation。如果要发送纯文本,则只使用text属性。而是使用html属性来创建HTML消息。您可以使用内置的setHtml方法,如下所示:

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

答案 1 :(得分:0)

如果你没有使用SendGrid API,但是下面设置了sendgrid的System.Net.Mail类将会这样做:

EmailMessage.IsBodyHtml = true;