NodeJs缓冲区未附加到Nodemailer文件

问题描述

当前在我的项目中,我正在处理一种情况,我觉得这是语法问题,但是最近三天我没有得到正确的答案,也有点感到压力和倾斜。

我正在使用三个库NodeJ,Html-pdf(phantomJS)和Nodemailer。

这是有问题的代码块(所有内容都在主要的异步函数中,该函数是graphQl的解析器)

 await pdf.create(html,options).toBuffer(async (err,buffer) => {
          //i = new ;
          //console.log(typeof(buffer))
          await buffer;
          await transporter.sendMail({
            from: '"Example" example@example.com',// sender address
            to: `${a1.dataValues.email}`,// list of receivers
            subject: `${text2}`,// Subject line
            text: `${text}`,// plain text body
            html: `<p> ${text} </p>`,// html body
            attachments: [
              {
                filename: `${a1.dataValues.kitID}.pdf`,content: buffer,contentType: "application/pdf",},],});
        });

电子邮件已发送,但我在浏览器中收到了邮件

result

附件已发送,但我想它是“未定义”的,我一直在努力寻找解决方法。有人可以帮我吗?

我也尝试做

 attachments: [
              {
                filename: `${a1.dataValues.kitID}.pdf`,content: new buffer.from(buffer),
 attachments: [
              {
                filename: `${a1.dataValues.kitID}.pdf`,content: new buffer(buffer),content: new buffer.from(buffer,'base64'),

但所有这些都会使Azure中的应用程序崩溃。一切都可以在本地完美运行,但部署时则无法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)