You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Nodemailer发送PDF附件邮件时后端buffer接收为空求助

问题:使用Nodemailer发送带PDF附件邮件时,后端接收前端传入的Buffer为空

我尝试用Nodemailer发送带有PDF附件的邮件,前端请求中已传入Buffer,但后端接收时该部分内容为空。有人遇到过这类问题吗?

我也尝试过通过以下方式发送随机.txt附件:

{
 // utf-8 string as an attachment
 filename: "text1.txt",
 content: "hello world!",
}

前端请求代码

async function fetchOffer() {
  if (file) {
    const buffer = await blob.arrayBuffer();
    if (buffer) {
      console.log('buffer', buffer);
      const response = fetch(`${linkUrl()}/truckcovers-offer-email`, {
        method: "POST",
        body: JSON.stringify({ filename: file.name, file: buffer})
        headers: {
          'Accept': 'application/json',
          'Content-Type': 'application/pdf'
        },
      }, setLoading(true)).then(
        (response) => (response.json())
      ).then((response) => {
        if (response.status === 'success') {
          console.log('response: ' + response);
          setVisible(true);
        } else if (response.status === 'fail') {
          console.log("Message failed to send.", response);
        }
      });
      setLoading(false);

      return response;
    }
  }
}

后端处理代码

app.post('/truckcovers-offer-email', async (req, res, next) => {
  const buffer = await req.body.buffer;

  let transporter = nodemailer.createTransport({
    host: process.env.HOST_EMAIL,
    port: process.env.PORT_EMAIL,
    auth: {
      user: process.env.USER_EMAIL,
      pass: process.env.PASSWORD_EMAIL
    }
  });

  const mailOptions = {
    from: 'test@test.com',
    subject: 'Offer',
    to: process.env.USER_EMAIL,
    html: `<h1>Offer from client</h1>`,
    attachments: [
      {
        filename: req.body.filename,
        content: Buffer.from(JSON.stringify(req.body.file), "utf-8")
      }
    ]
  };

  transporter.sendMail(mailOptions, (err, result) => {
    if (err) {
      console.error(err);
      res.status(400).json({ "message": err })
    } else {
      res.status(200).json({ 'status': "success", 'message': 'Email sent:' + result.response });
    }
  });
});

相关截图:
前端Buffer日志截图
后端接收内容截图

内容的提问来源于stack exchange,提问作者Santiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:35:04