有人可以向我解释如何国际化使用Node.js上的 nodemailer 库发送的电子邮件模板吗? 我需要发送包含很多html代码的电子邮件,因此我已经安装了插件“ nodemailer-express-handlebars ”,就像建议的nodemailer文档(https://nodemailer.com/plugins/)一样,但是我在有关国际化(https://github.com/yads/nodemailer-express-handlebars)的文档中未找到任何内容。 我尝试安装 i18n 插件(https://www.npmjs.com/package/i18n),但我不知道如何将其与“ nodemailer-express-handlebars”集成。这是我的代码:
data.js
function sendEmail(){
var hbs = require('nodemailer-express-handlebars');
var exphbs = require('express-handlebars');
/*--------------------- e-mail configuration ---------------------*/
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
host: 'xxxxxxxxxx',
port: 465,
secure: true, // true for 465, false for other ports
auth: {
type: 'login',
user: 'xxxxxxxxxx', // generated ethereal user
pass: 'xxxxxxxxxx' // generated ethereal password
},
tls: {
rejectUnauthorized: false
}
});
var options = {
viewEngine: exphbs,
viewPath: './storage',
extName: '.html'
};
//attach the plugin to the nodemailer transporter
transporter.use('compile', hbs(options));
var senderAddr = '"Test sender" <no-reply@test.it>';
var mailOptions = {
from: senderAddr, // sender address
to: 'test@domain.com', // list of receivers
subject: 'Hello', // Subject line
template: 'test1',
context: {
name: 'Paul'
}
};
/*--------------------- end e-mail configuration ---------------------*/
// send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
// Preview only available when sending through an Ethereal account
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
});
}
test1.html
<h1>Welcome {{name}}! Here are your credentials:</h1>
<ul>
<li>username: xxxxxxxxxx</li>
<li>password: xxxxxxxxxx</li>
</ul>
<p>Thank you for registering.</p>
这是我要获取的本地化文件(i18n): it.json
{
"Welcome {{name}}! Here are your credentials:" : "Benvenuto {{name}}! Ecco le tue credenziali:",
"Thank you for registering.": "Grazie per esserti registrato."
}