javascript - 如何使用nodemailer发送pdf附件?

标签 javascript node.js email pdf nodemailer

我有一个包含 html 内容的 js 文件。

.js 文件

const data = (data) => {
  return `<h1> This is my pdf data </h1>`
}
export default data 

这是我的nodemailer功能

import template from "js_file_path"
const body = template(data);
const mail = mailcomposer({
        from: "XXXX",
        to: "XXXX",
        subject: `Subject`,
        attachments: [
          {
            filename: "Receipt.pdf",
            content: body
          }
        ]
      });
      // mail.build()

但这不起作用。谁能建议我如何做到这一点?

最佳答案

这是一个生成 PDF 文件的库吗?

import template from "js_file_path"

如果不是这种情况,您应该使用一个库,该库根据您传递给它的模板生成 pdf。

例如:https://www.npmjs.com/package/pdfkit

代码示例:

import pdfGenerator from "pdgGeneratorLibrary"
import pdfTemplate from "pdfTemplate"
import nodemailer from "nodemailer"

(async () => {
 try {
    // build your template
    const pdfBufferedFile = await pdfGenerator(pdfTemplate);

    // set your transport
    const transporter = nodemailer.createTransport({ ...});

    // set your options
    const mailOptions = {
        from: "XXXX",
        to: "XXXX",
        subject: `Subject`,
        attachments: [{
            filename: "Receipt.pdf",
            contentType: 'application/pdf', // <- You also can specify type of the document
            content: pdfBufferedFile // <- Here comes the buffer of generated pdf file
        }]
    }

    // Finally, send the email
    await transporter.sendMail(mailOptions, function (error, info) {
        if (error) {
            console.log(error)
        } else {
            console.log(info)
        }
    });

 } catch (err) {
  // to do handle error
 }
})()

希望对你有帮助。问候。

关于javascript - 如何使用nodemailer发送pdf附件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61358789/

相关文章:

node.js - Selenium webdriver 打开 Firefox 但无法通过 Selenium 和 NodeJS 获取页面

Node.js 调整图像大小

javascript - 使用 HTML5 验证多个电子邮件地址

javascript - Oracle Jet 不显示来自 Web 服务的数据

javascript - Meteor userId 存在但用户未定义

javascript - 如何使用 jquery 创建图像缩放效果?

Javascript 标签在 HTML 中不起作用

email - "missing word in phrase: charset not supported", 使用邮件包时

javascript - 无法将 jquery/ajax 集成到 django 项目中

javascript - 为什么我的按钮消失了? (尝试了解基础知识)