活动邀请导致 Gmail 显示两个要添加到 gcal 的活动

Event invite results in Gmail displaying two events to add to gcal

我正在生成一封包含 ICS 格式事件的电子邮件,我希望 Gmail 和 Outlook 都能识别该事件。正如我在其他地方看到的那样,它包含一条 multi/mixed 消息。其中,有一个 multi/alt 和 text/plain、text/html 和 text/calendar 部分。最后 application/ics 部分。 Gmail 认识到这一点并设置了 'Add to Google Calendar' 按钮,但它认为有两个相同的事件。我知道最后的 application/ics 部分是针对 Outlook 的,但它似乎会导致重复。我错过了什么?

消息示例如下:

Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="001643911600085117750003319898"

--001643911600085117750003319898
Content-Type: multipart/alternative; boundary="yabbadabbadoo"

--yabbadabbadoo
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"

This is my plain text part


--yabbadabbadoo
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

This is my HTML part

--yabbadabbadoo
Content-Type: text/calendar; charset=UTF-8; method=PUBLISH
Content-Transfer-Encoding: quoted-printable

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Groups.io Inc//Groups.io Calendar//EN
METHOD:PUBLISH
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:calendar.10@groups.io
DTSTAMP:20150318T225646Z
DTSTART:20150321T000000Z
DTEND:20150321T010000Z
SUMMARY:test 6
DESCRIPTION:5-7pm pacific time
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:test 6
TRIGGER:-PT5H
END:VALARM
END:VEVENT
END:VCALENDAR

--yabbadabbadoo--


--001643911600085117750003319898
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="invite.ics"
Content-Type: application/ics; name="invite.ics"

QkVHSU46VkNBTEVOREFSClZFUlNJT046Mi4wClBST0RJRDotLy9Hcm91cHMuaW8gSW5jLy9Hcm91
cHMuaW8gQ2FsZW5kYXIvL0VOCk1FVEhPRDpQVUJMSVNICkNBTFNDQUxFOkdSRUdPUklBTgpCRUdJ
TjpWRVZFTlQKVUlEOmNhbGVuZGFyLjEwQGdyb3Vwcy5pbwpEVFNUQU1QOjIwMTUwMzE4VDIyNTY0
NloKU1VNTUFSWTp0ZXN0IDYKRFRTVEFSVDoyMDE1MDMyMVQwMDAwMDBaCkRURU5EOjIwMTUwMzIx
VDAxMDAwMFoKREVTQ1JJUFRJT046NS03cG0gcGFjaWZpYyB0aW1lCkJFR0lOOlZBTEFSTQpBQ1RJ
T046RElTUExBWQpERVNDUklQVElPTjp0ZXN0IDYKVFJJR0dFUjotUFQ1SApFTkQ6VkFMQVJNCkVO
RDpWRVZFTlQKRU5EOlZDQUxFTkRBUg==


--001643911600085117750003319898--

Outlook 期望邮件只有一部分 - text/calendar。

纯文本和 HTML 正文以及附件需要成为 vCalendar 数据的一部分。

您的整个消息必须如下所示:

Mime-Version: 1.0
Content-Type: text/calendar; charset=UTF-8; method=PUBLISH
Content-Transfer-Encoding: quoted-printable
Subject: test 6

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Groups.io Inc//Groups.io Calendar//EN
METHOD:PUBLISH
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:calendar.10@groups.io
DTSTAMP:20150318T225646Z
DTSTART:20150321T000000Z
DTEND:20150321T010000Z
SUMMARY:test 6
DESCRIPTION:5-7pm pacific time
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:test 6
TRIGGER:-PT5H
END:VALARM
END:VEVENT
END:VCALENDAR

我在 ICS 文件中缺少一个 ORGANIZER 字段。添加后,Gmail 不再显示重复事件。