【问题标题】:Cannot cancel ical event (dreaded "not supported calendar message.ics")无法取消 ical 事件(可怕的“不支持的日历 message.ics”)
【发布时间】:2020-03-27 06:03:42
【问题描述】:

我正在用 Python 编写一个系统,该系统使用 icalendar 库来生成 ical 邀请。这些效果非常好,但如果我尝试发送取消邮件,Outlook 只会显示可怕的“不支持的日历 message.ics”。我最初在邀请时遇到了这个问题,但通过修复我的日期格式解决了这个问题。

这是最初的邀请:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//myapp//myapp.example.com//
METHOD:REQUEST
BEGIN:VEVENT
SUMMARY:Weekly Review Meeting
DTSTART;VALUE=DATE-TIME:20200331T190000Z
DTEND;VALUE=DATE-TIME:20200331T200000Z
DTSTAMP;VALUE=DATE-TIME:20200325T193007Z
UID:1@myapp
SEQUENCE:0
ATTENDEE:me@example.com
CATEGORY:EVENT
CLASS:PUBLIC
DESCRIPTION:bla bla
LOCATION:Webex
ORGANIZER:donotreply@example.com
PRIORITY:5
STATUS:CONFIRMED
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

然后取消:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//myapp//myapp.example.com//
METHOD:CANCEL
BEGIN:VEVENT
SUMMARY:Weekly Review Meeting
DTSTART;VALUE=DATE-TIME:20200331T190000Z
DTEND;VALUE=DATE-TIME:20200331T200000Z
DTSTAMP;VALUE=DATE-TIME:20200325T193011Z
UID:1@myapp
SEQUENCE:1
ATTENDEE:me@example.com
CATEGORY:EVENT
CLASS:PUBLIC
DESCRIPTION:
LOCATION:Webex
ORGANIZER:donotreply@example.com
PRIORITY:5
STATUS:CANCELLED
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

相同的代码生成并设置METHODSTATUS 不同(DESCRIPTION 也不同)。我发送SEQUENCE 0 表示邀请,1 表示取消。匹配对之间的 UID 始终保持一致。我错过了什么?

【问题讨论】:

    标签: outlook icalendar


    【解决方案1】:

    我最终自己解决了这个问题。我将分享我的学习成果。

    电子邮件中的 MIME 类型也需要设置为 method=CANCEL。这最终是我的问题。 MIME 类型中的 method 需要与 ical 文件中的 METHOD 匹配,并且两者都是 Outlook 正确处理它所必需的。

    SEQUENCE 不应该为取消而增加,而只是为了更新。

    我还更新了所有地址(ORGANIZERATTENDEE)以包括 mailto:,但这似乎不是绝对必要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多