Node.js nodemailer-express-handlebars国际化(i18n)

时间:2018-09-08 21:04:03

标签: node.js internationalization nodemailer

有人可以向我解释如何国际化使用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."
}

0 个答案:

没有答案