node.js - NodeJS 使用 pdf 创建器通过电子邮件发送 PDF
问题描述
我是 NodeJS 的新手。我正在尝试从 HTML 生成 PDF 并使用 nodemailer 通过电子邮件发送。
exports.testReqID = async (req, res, next) => {
const ID = req.params.myID;
const htmlData = `
<html>
<head></head>
<body>
<h1>PDF Test. ID: ${ID}</h1>
</body>
</html>
`; // Just a test HTML
pdf.create(htmlData).toBuffer(function(err, buffer){
let emailBody = "Test PDF";
const email = new Email();
const transporter = email.getTransporter();
await transporter.sendMail({
from: 'support@myemail.com',
to: 'me@myemail.com',
subject: "TEST",
html: emailBody,
attachments: {
filename: 'test.pdf',
contentType: 'application/pdf',
path: // How can I do it?
}
});
});
};
Email() 类只是我对 nodemailer 的设置,它从transporter = nodemailer.createTransport(...)
解决方案
您可以将其作为缓冲区发送。文档
exports.testReqID = async (req, res, next) => {
const ID = req.params.myID;
const htmlData = `
<html>
<head></head>
<body>
<h1>PDF Test. ID: ${ID}</h1>
</body>
</html>
`; // Just a test HTML
pdf.create(htmlData).toBuffer(function(err, buffer){
let emailBody = "Test PDF";
const email = new Email();
const transporter = email.getTransporter();
await transporter.sendMail({
from: 'support@myemail.com',
to: 'me@myemail.com',
subject: "TEST",
html: emailBody,
attachments: {
filename: 'test.pdf',
content: buffer',
}
});
});
};
推荐阅读
- node.js - 使用 Postman 时如何解决 nodejs 中的 CORS 错误?
- java - VSCode + Gradle Java 运行和调试
- javascript - 为什么我无法从 Angular10 的下拉菜单中获取值?
- javascript - JS 正则表达式。如何将两个表达式合二为一?
- git - 如何删除/替换 git subtree 提交及其合并提交?
- javascript - 即使闭包不依赖于词法范围,是否也应该使用闭包来构建代码?如何在循环内重新声明?
- javascript - 在 React Native 中导航到同一页面内的不同屏幕
- ios - Flutter ios 设备不会从 FCM 通知触发 onMessage。实施 APN 时 Sendtodevice 失败
- python - 为什么我的 Toplevel() 窗口显示空白
- laravel - Laravel API 路由 404