编码Base64并作为附件发送
Encode Base64 and send as attachment
这是文件的示例结构:
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 中删除 header?
但是我不知道如何解决这个问题。
- 您想发送一封带有附件的电子邮件。
- 您有 base64 数据,您希望将其作为附件发送。
- 您想使用 nodemailer 实现此目的。
- 您已经能够在 Gmail 中使用 nodemailer 接收和发送电子邮件 API。
如果我的理解是正确的,这个答案怎么样?请将此视为几个答案之一。
模式 1:
在这个模式中,使用nodemailer直接发送base64数据。
修改后的脚本:
当您的脚本修改时,请修改如下。
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'
}
]
- 如果一直包含base64数据的header(类似
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,
}
]
- 如果一直包含base64数据的header(类似
data:application/pdf;base64,
),也可以修改为content: Buffer.from(mailData.file.container.split(",")[1], 'base64'),
.
参考:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
这是文件的示例结构:
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 中删除 header?
但是我不知道如何解决这个问题。
- 您想发送一封带有附件的电子邮件。
- 您有 base64 数据,您希望将其作为附件发送。
- 您想使用 nodemailer 实现此目的。
- 您已经能够在 Gmail 中使用 nodemailer 接收和发送电子邮件 API。
如果我的理解是正确的,这个答案怎么样?请将此视为几个答案之一。
模式 1:
在这个模式中,使用nodemailer直接发送base64数据。
修改后的脚本:
当您的脚本修改时,请修改如下。
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'
}
]
- 如果一直包含base64数据的header(类似
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,
}
]
- 如果一直包含base64数据的header(类似
data:application/pdf;base64,
),也可以修改为content: Buffer.from(mailData.file.container.split(",")[1], 'base64'),
.
参考:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。