1

我想在使用 Courier 发送的电子邮件中添加 PDF。我已将我的账户设置为使用 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?

4

1 回答 1

2

您可以使用 Provider Override 来包含附件。每个提供商的覆盖都不同,但您可以在 Courier Docs 中了解有关AWS SES 覆盖的更多信息。

您需要获取要附加为 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
        }
      ]
    }
  }
});
于 2020-11-16T21:48:56.737 回答