我正在使用v3 node.js客户端发送电子邮件。现在,我想通过电子邮件发送pdf附件。我浏览了API文档。但是我在任何地方都没有找到如何做的。
我正在使用以下代码发送电子邮件。
const msg = {
to: process.env.EMAIL_ID,
from: process.env.ALERT_EMAIL_ID,
subject: subjectText,
text: info
};
sgMail.send(msg);
答案 0 :(得分:0)
让我们假设您的PDF位于S3中。
从S3获取文件
const pdfFile = await s3
.getObject({
Bucket: PDF_BUCKET_NAME,
Key: `flight-${fileName}.pdf`,
})
.promise();
拥有文件后
const base64data = pdfFile.Body.toString('base64');
const data = {
from: 'text@example.in',
to: user.emailId,
subject: 'Your ticket for flight PNR XYSSA1 from DEL-BLR',
html: `Please find attached your ticket
<br><br>Regards<br>
Team Example`,
attachments: [
{ content: base64data, filename: 'flight-ticket', type: 'application/pdf', disposition: 'attachment' },
],
};
await sgMail.send(data);
如果您的文件位于文件系统中,只需从fs.readFile获取缓冲区,将其转换为如上所示的base64并重复上述步骤即可。