Я использую Sendgrid для отправки транзакционного электронного письма с функциями Firebase Cloud, используя Nodejs.
const attachment = file.createReadStream();
const msg = {
to: email,
from: "test@test.com",
subject: "print order",
templateId: "templateid",
dynamic_template_data: {
dashboardurl: `/order#${orderId}`,
downloadurl: orderData.downloadurl
},
attachments: [{
content: attachment,
filename: "order.pdf",
type: "application/pdf",
disposition: "attachment"
}]
};
await sgMail.send(msg);
Письмо не будет отправлено из-за следующей ошибки:
TypeError: Converting circular structure to JSON
Решение для хранилища Firebase
const tempFilePath = path.join(os.tmpdir(), "tmp.pdf");
await file.download({ destination: tempFilePath });
const attachment = fs.readFileSync(tempFilePath, { encoding: "base64" });