node.js - 样式化 NodeMailer 电子邮件
问题描述
下面我引用了 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(周围还有其他模板引擎)。你会在你的项目中这样要求它:
const ejs = require('ejs');
我在一个类中实现了动态加载所需的模板,然后为其提供数据。
这就是我的渲染方法(输出 HTML)的样子:
renderTemplate(template, parameters, options) {
return ejs.render(template, parameters, options);
}
您可以查看EJS以获取更多详细信息。那将是非常基本的实现,应该会让你朝着好的方向前进。稍后,您可以为此包含页眉或页脚。
玩得开心
推荐阅读
- c# - 如何获取我的热点的 ssid 和密码以与接收者共享?
- python - MQTT IoT 智能插件 Python
- delphi - Delphi - 如何过滤包含子字符串的字符串的 ADOTable
- sql - 将行从数据库表复制到另一个具有相同结构和位置的数据库表
- julia - 对象未在循环中定义
- python - 从实例列表访问对象
- objective-c - renderer(_:didAdd:for:) 方法中的全局和局部参数名称
- python-3.x - 无法在 virtualenv python 上访问 pg_config
- julia - Julia:如何更改 Bessel 函数中参数的类型?
- xaml - Xamarin Style IndicatorView 看起来像 TabbedPage