我有一个包含 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/