设置NodeMailer电子邮件的样式

时间:2018-12-17 16:51:01

标签: 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);
});

2 个答案:

答案 0 :(得分:0)

对于样式电子邮件,您可能想直接编写样式,或者看起来有些NPM软件包可以帮助您。 (nodemailer-juice),看起来它将带走您的css文件并使其内联。

答案 1 :(得分:0)

我将为您提供一些提示,希望您也能够在您的项目中实现它。

首先,您需要一个EJS(周围还有其他模板引擎)。您将在项目中要求这样:

const ejs = require('ejs');

我在一个类中具有实现,该实现可动态加载所需的模板,然后将其提供数据。

这是我的render方法(输出HTML)的样子:

renderTemplate(template, parameters, options) {
        return ejs.render(template, parameters, options);
    }

您可以检查EJS了解更多详细信息。 那将是非常基本的实现,应该使您朝着正确的方向前进。稍后,您可以为此添加页眉或页脚。

玩得开心