首页 > 解决方案 > 带有新元素的 Nodemailer

问题描述

我在 NodeMailer 中有这个代码用于发送电子邮件:

var mailOptions = {  
  from: 'test@test.com',  
  to: 'send@send.com',  
  subject: 'mail',  
  text:'test'  
 }

我有这个功能:

    mens.message(params, (err, response) => {
        if (err){
          res.status(500).json(err);
        }
        else {
        if(response.context.reporte){
----------->  var report = response.context.reporte;
            response.context.reporte=null;
                transporter.sendMail(mailOptions, function(error, info){
              if (error) {
                    console.log(error);
                    } 
                    else {
                            console.log('Email Send: ' + info.response) ;
                                        }
                                      });  
                  }  

              } 
        });

我该怎么做,这个有消息的变量“report”可以替换nodemailer的“text”属性?

非常感谢你!

标签: javascriptnode.jsnodemailer

解决方案


您需要用新值覆盖文本

    mens.message(params, (err, response) => {
        if (err){
          res.status(500).json(err);
        }
        else {
        if(response.context.reporte){
            var report = response.context.reporte;
            response.context.reporte=null;
            mailOptions = { ...mailOptions, ...{ text: report } }; // <<<< CHANGE IS HERE
                transporter.sendMail(mailOptions, function(error, info){
              if (error) {
                    console.log(error);
                    } 
                    else {
                            console.log('Email Send: ' + info.response) ;
                                        }
                                      });  
                  }  

              } 
        });

如果您的节点版本不支持,spread operator那么您可以将mailOptions = { ...mailOptions, ...{ text: report }},替换为Object.assign(mailOptions, { text: report });


推荐阅读