【问题标题】:Sending notification email using nodemailer in nodejs在 nodejs 中使用 nodemailer 发送通知电子邮件
【发布时间】:2015-11-06 15:21:58
【问题描述】:

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

我正在使用 nodemailer,但我无法弄清楚如何发送来自请求的用户输入的详细信息,邮件正文中有 req.body.name,但用户名除外(例如:山姆)

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");
  });

【问题讨论】:

    标签: node.js email nodemailer


    【解决方案1】:

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

    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 属性(样式、类、id 等)使用双引号,其余的使用单引号。

    【讨论】:

    • 您的'&lt;p&gt;' + name:req.body.name + 段不起作用,我认为其目的是让name 成为html 的一部分。所以&lt;p&gt;name:' + req.body.name +
    • 只是确保。你的回答是正确的;我只是忍不住添加了模板字符串答案。 ES6/ES2015 示例,我可以;)
    【解决方案2】:

    如果您使用的是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>`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2015-05-19
      • 2021-08-14
      • 1970-01-01
      相关资源
      最近更新 更多