在nodejs中使用nodemailer发送通知邮件

Sending notification email using nodemailer in nodejs

我有使用 angularjs 和 nodejs 构建的应用程序,管理员必须从应用程序的联系我们那里获得有关详细信息的邮件

我正在为此使用 nodemailer,但我无法弄清楚如何发送用户根据邮件正文中的请求输入的详细信息,我收到的邮件正文中有 req.body.name,但邮件的名称除外用户(例如:sam)

var nodemailer = require('nodemailer');

var smtpTransport = nodemailer.createTransport("SMTP",{
  service: "Gmail",  // sets automatically host, port and connection security settings
  auth: {
    user: "dhanalakshmi.05k@gmail.com",
    pass: "*****"
  }
});

router.route('/sendmail')
  .post(function(req,res){
    console.log("!!!!!!!!!!!!!!!!1");
    console.log(req.body);
    smtpTransport.sendMail({  //email options
    from: "dhanalakshmi.05k@gmail.com", // sender address.  Must be the same as authenticated user if using Gmail.
    to: "dhanalakshmi@zendynamix.com", // receiver
    subject: "UsersQuery", // subject
    ***html: "<b style='color: #006600'>UserQuery</b><p>name:req.body.name</p><p>name:req.body.email</p><p>name:req.body.message</p>"***
    }, function(error, response){  //callback
  if(error){
    console.log(error);
  }else{
    console.log("Message sent: " + response.message);
  }
  smtpTransport.close(); // shut down the connection pool, no more messages.  Comment this line out to continue sending emails.
});
    res.send("done");
  });

您必须将变量放在引号外并可能更改它们:

html: '<b style="color: #006600">UserQuery</b><p>name:' + req.body.name + '</p><p>name:' + req.body.email + '</p><p>name:' + req.body.message + '</p>'

仅对 HTML 属性(样式、class、id 等)使用双引号,其余使用单引号。

如果您使用的是 node 4.0 或更高版本,您应该尝试使用 template strings;您使用反引号字符而不是单引号或双引号。这允许多行字符串,而不必在每行末尾添加 "\n"+

这更容易阅读,也更酷!

html: `<b style='color: #006600'>UserQuery</b>
       <p>name: ${req.body.name}</p>
       <p>email: ${req.body.email}</p>
       <p>message: ${req.body.message}</p>`