这是文件的示例结构:
file:
[ { container:'data:application/pdf;base64,JVBERi0x ...,
filename: 'logofinal.psd',
mimetype: 'application/pdf',
file_type: 'random'}]
我如何在 nodemailer 中将其作为附件发送:
attachments: [
{
filename: mailData.file.filename,
content: mailData.file.container,
contentType: mailData.file.mimetype,
encoding: 'base64'
}
]
也许我需要一个缓冲区来从file.container中删除标头?
但是我不知道如何解决此问题。
答案 0 :(得分:0)
如果我的理解正确,那么这个答案如何?请认为这只是几个答案之一。
在这种模式下,base64数据是使用nodemailer直接发送的。
修改脚本后,请进行以下修改。
attachments: [
{
filename: mailData.file.filename,
content: content: /data:.*;base64,/.test(mailData.file.container) ? mailData.file.container.split(",")[1] : mailData.file.container,
contentType: mailData.file.mimetype,
encoding: 'base64'
}
]
data:application/pdf;base64,
),则还可以修改为content: mailData.file.container.split(",")[1]
。在这种模式下,base64数据将转换为缓冲区,并使用nodemailer发送。
修改脚本后,请进行以下修改。
attachments: [
{
filename: mailData.file.filename,
content: Buffer.from((/data:.*;base64,/.test(mailData.file.container) ? mailData.file.container.split(",")[1] : mailData.file.container), 'base64'),
contentType: mailData.file.mimetype,
}
]
data:application/pdf;base64,
),则还可以修改为content: Buffer.from(mailData.file.container.split(",")[1], 'base64'),
。如果我误解了您的问题,而这不是您想要的方向,我深表歉意。