为了账号安全,请及时绑定邮箱和手机立即绑定

根据请求正文在 nodemailer 中发送多个附件

根据请求正文在 nodemailer 中发送多个附件

函数式编程 2022-01-07 19:08:20
到目前为止,这是我正在解决的代码function sendMail(req,res){    var transporter = nodemailer.createTransport({    host:process.env.NODEMAILER_HOST,    port:process.env.NODEMAILER_PORT,    auth: {      user: process.env.NODEMAILER_ADDRESS,      pass: process.env.NODEMAILER_PASS    }  })     mailOptions = {      from: req.body.from,      to: req.body.to,      cc: req.body.cc,      bcc: req.body.bcc,      subject: req.body.subject,      text: req.body.text,      html: req.body.html,      attachments: [        {          filename: req.body.attachments[0].filename,          path: req.body.attachments[0].path,          contentType: req.body.attachments[0].contentType        },{          filename: req.body.attachments[1].filename,          path: req.body.attachments[1].path,          contentType: req.body.attachments[1].contentType        }      ]    }  transporter.sendMail(mailOptions,function(error,info){      if(error){        console.log(error);        return res.status(400).json("Failed to Send");      }else{        res.status(201).json(req.body);      }    });}这是我的请求正文{"from": "example1@gmail.com","to": "example2@gmail.com","cc": "example3@gmail.com","bcc": "test@example.com","subject": "Test Request 1","text": "Example Text 1","html": "<p>Some Paragraph</p>","attachments": [    {        "filename": "test.doc",        "path": "dirname/test.doc",        "contentType": "application/doc"    },{        "filename": "test-coverted.pdf",        "path":  "dirname/test-converted.pdf",        "contentType": "application/pdf"            }]}如何遍历附件而不在邮件选项中一一定义?因为如果我迭代 mailOptions 那么我需要创建单独的传输,这反过来将为不同的附件发送不同的电子邮件。
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您在响应正文中获得了相同的 json 对象键,因此您可以直接将附件数组分配给 nodemailer mailOption 对象的附件键。请参阅下文。


function sendMail(req,res){  

  var transporter = nodemailer.createTransport({

    host:process.env.NODEMAILER_HOST,

    port:process.env.NODEMAILER_PORT,

    auth: {

      user: process.env.NODEMAILER_ADDRESS,

      pass: process.env.NODEMAILER_PASS

    }

  })

 mailOptions = {

  from: req.body.from,

  to: req.body.to,

  cc: req.body.cc,

  bcc: req.body.bcc,

  subject: req.body.subject,

  text: req.body.text,

  html: req.body.html,

  attachments: req.body.attachments

}


查看完整回答
反对 回复 2022-01-07
  • 1 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信