我有一个拥有自己的日历系统的网络应用。我想在用户添加/更新/删除日历活动时向用户发送电子邮件通知。
我通过nuget包Ical.Net使用iCal来创建事件附件。这在添加新日历事件时非常有用。我能够收到带有iCal附件的电子邮件并接受它并将其添加到我的谷歌日历中。
我的问题是:有没有办法使用iCal发送会影响之前添加的日历事件的更新或删除类型对象?
我尝试在第二个iCal对象中使用相同的Uid,但这不起作用。
更新:这是会议创建流:
BEGIN:VCALENDAR
PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.2//EN
VERSION:2.0
BEGIN:VEVENT
DESCRIPTION:hi
DTEND:20171019T200000
DTSTAMP:20171018T022927Z
DTSTART:20171019T193000
SEQUENCE:0
STATUS:Confirmed
SUMMARY:test
UID:2291d1c2-3b6d-404a-82ac-16807ecfd580
END:VEVENT
END:VCALENDAR
更新流与开始和结束时间不同相同。
更新2:
我已经阅读了很多帖子和RFC 2446,试图做到这一点并且仍然遇到麻烦。以下是原始项目的3个示例,更新日期然后取消更新。我最初只在原始时间举行一次活动。它不会更改更新的时间,也不会取消事件。
我也尝试将METHOD:line放在VEVENT中,因为我认为我在阅读RFC 2446时会读到这些内容。当我这样做时,我最终得到了3个事件。原来和新日期的2。
初始事件
BEGIN:VCALENDAR
PRODID:-//RealtimeMD//Medical Portal//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20171020T023000Z
DTEND:20171020T030000Z
DTSTAMP:20171020T015303Z
ORGANIZER;CN=Bob Docter:mailto:drbob@shatalmic.com
UID:24258c34-2888-43ec-ac3d-180ee2603294
CREATED:20171020T015303Z
X-ALT-DESC;FMTTYPE=text/html:
LAST-MODIFIED:20171020T015304Z
LOCATION:RealtimeMD Zoom
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:t
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
更新活动
BEGIN:VCALENDAR
PRODID:-//RealtimeMD//Medical Portal//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20171021T023000Z
DTEND:20171021T030000Z
DTSTAMP:20171020T015303Z
ORGANIZER;CN=Bob Docter:mailto:drbob@shatalmic.com
UID:24258c34-2888-43ec-ac3d-180ee2603294
CREATED:20171020T015303Z
X-ALT-DESC;FMTTYPE=text/html:
LAST-MODIFIED:20171020T015340Z
LOCATION:RealtimeMD Zoom
SEQUENCE:1
STATUS:CONFIRMED
SUMMARY:t
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
取消活动
BEGIN:VCALENDAR
PRODID:-//RealtimeMD//Medical Portal//EN
VERSION:2.0
METHOD:CANCEL
BEGIN:VEVENT
DTSTART:20171021T023000Z
DTEND:20171021T030000Z
DTSTAMP:20171020T015303Z
ORGANIZER;CN=Bob Docter:mailto:drbob@shatalmic.com
UID:24258c34-2888-43ec-ac3d-180ee2603294
CREATED:20171020T015303Z
X-ALT-DESC;FMTTYPE=text/html:
LAST-MODIFIED:20171020T015433Z
LOCATION:RealtimeMD Zoom
SEQUENCE:2
STATUS:CANCELLED
SUMMARY:t
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
答案 0 :(得分:0)
如果您通过电子邮件发送,则需要按照https://tools.ietf.org/html/rfc5546#section-3.2.1发送带有PUBLISH方法的iTIP消息。这也暗示了您构建电子邮件的方式。见https://tools.ietf.org/html/rfc6047