#node.js #email #email-attachments #amazon-ses #courier
#node.js #Адрес электронной почты #вложения электронной почты #amazon-ses #courier
Вопрос:
Я хотел бы добавить PDF-файл к электронному письму, которое я отправляю с помощью Courier. Я настроил свою учетную запись на использование Amazon SES в качестве поставщика услуг электронной почты. Я использую Courier Node.js SDK для отправки сообщения:
const courier = CourierClient();
const { messageId } = await courier.send({
eventId: "MONTHLY_BILLING",
recipientId: "81462728-70d2-4d71-ab44-9d627913f1dd",
data: {
"tennant_id": "W5793",
"tennant_name": "Oscorp, Inc.",
"billing_date": {
"month": "November",
"year": "2020"
},
"amount": 99.0
}
});
Как я могу также включить счет-фактуру в формате PDF?
Ответ №1:
Вы можете включить вложение, используя переопределение поставщика. Переопределения каждого поставщика различны, но вы можете узнать больше о переопределениях AWS SES в документах Courier .
Вам нужно будет получить файл, который вы хотите прикрепить, в виде строки в кодировке base64. Это зависит от того, где находится ваш файл. Чтобы извлечь файл из файловой системы, вы можете выполнить следующие действия:
const fs = require('fs');
const file = fs.readFileSync("/path/to/file");
const strFile = new Buffer(file).toString("base64");
Теперь вы можете обновить свой метод отправки Courier, включив переопределение:
const courier = CourierClient();
const { messageId } = await courier.send({
eventId: "MONTHLY_BILLING",
recipientId: "81462728-70d2-4d71-ab44-9d627913f1dd",
data: {
"tennant_id": "W5793",
"tennant_name": "Oscorp, Inc.",
"billing_date": {
"month": "November",
"year": "2020"
},
"amount": 99.0
},
override: {
"aws-ses": {
attachments: [
{
fileName: "FileName.pdf",
contentType: "application/pdf",
data: strFile
}
]
}
}
});