相关疑难解决方法(0)

如何通过 SendGrid 发送 .ics 日历邀请,以便它在电子邮件客户端中呈现?

我正在尝试.ics通过 SendGrid (从节点服务器)发送日历邀请,以便它在 Outlook 或 Gmail 等客户端中呈现为实际邀请(带有接受/拒绝按钮),而不仅仅是作为附件文件。

我花了几天时间研究这个问题(数十个 Stackoverflow 问题、RFC -5545、RFC-2446、iCalendar规范摘录、Sendgrid 的 GitHub 问题线程:1、2、3 、 SendGrid文档、源等)。

然而,似乎没有答案(或者我错过了什么?)。


到目前为止我发现Content-Type附件在这里非常重要,尤其是method=REQUEST部分。甚至文件中属性的顺序也会有所不同。

尽管这里有很多关于 SO 的问题,但由于某种原因,大多数问题仍然没有得到解答。


这是我设置attachment对象的方法:

const SendGrid = require("@sendgrid/mail");

  const attachment = {
    filename: 'invite.ics',
    name: 'invite.ics',
    content: Buffer.from(data).toString('base64'),
    disposition: 'attachment',
    contentId: uuid(),
    type: 'application/ics'
  };

SendGrid.send({
      attachments: [attachment],
      templateId,
      from: {
        email: config.emailSender,
        name: config.emailName,
      },
      to: user.email,
      dynamicTemplateData: {
        ...rest,
        user,
      }, …
Run Code Online (Sandbox Code Playgroud)

icalendar outlook gmail sendgrid sendgrid-api-v3

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

gmail ×1

icalendar ×1

outlook ×1

sendgrid ×1

sendgrid-api-v3 ×1