【发布时间】:2018-12-19 00:42:44
【问题描述】:
下面我引用了 NodeJS 中的 NodeMailer 包中的一个示例。它旨在自动发送电子邮件。如您所见,在 mailOptions 对象中,您可以将 HTML 写入邮件正文。这是我计划使用的一个很棒的功能。
但是,我确实有一个关于如何设置此 HTML 样式的问题。我可以在此 HTML 上使用任何样式选项吗?我将如何处理。 我认为最合乎逻辑的方式是内联样式。
有没有人尝试过这个并取得了成功?
var nodemailer = require('nodemailer');
// create reusable transporter object using the default SMTP transport
var transporter =
nodemailer.createTransport('smtps://user%40gmail.com:pass@smtp.gmail.com');
// setup e-mail data with unicode symbols
var mailOptions = {
from: '"Fred Foo ?" <foo@blurdybloop.com>', // sender address
to: 'bar@blurdybloop.com, baz@blurdybloop.com', // list of receivers
subject: 'Hello ✔', // Subject line
text: 'Hello world ?', // plaintext body
html: '<b>Hello world ?</b>' // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});
【问题讨论】:
-
您可以使用其中一种模板生成器,例如 EJS。制作一个模板,为其提供数据并完全按照您的意愿获取 HTML。
-
如果它是一个基本布局,你可以使用 JavaScript 模板文字来帮助创建一个带有一些内联 css 的简单 html 布局(电子邮件客户端需要很多才能让它们全部正确显示),存储它在 var 中并将其传入。但是,如果它是一个更复杂的设计,内容和数据会定期更改,正如 Vendran 解释的那样,使用 ejs 等模板引擎创建更健壮的布局并将其传入。
-
@VedranMaricevic 虽然 ejs 是必要的。这部分是静态html,还是我仍然可以使用js(类似于jsx)。在这种情况下,使用 es6 字符串文字肯定会更容易。
-
我无法用精确的代码回答你,因为这个话题太广泛了。相反,我为您提供了一些可以帮助您的提示。
标签: node.js nodemailer