我通过电子邮件将ICS文件发送给用户,以帮助自动管理约会,当任何一方单击我网站上的取消链接时,我都会发送一封包含取消ICS文件的新电子邮件。
我的目标市场主要使用gmail。
当他们收到初始电子邮件时,可以单击以将事件从ics文件添加到其Google日历中。
当他们收到取消电子邮件时,无法更新事件。
如果相关,则电子邮件来自support@domain.com
有什么办法可以通过电子邮件处理ICS文件?
原始事件ICS:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//sebbo.net//ical-generator//EN
METHOD:PUBLISH
BEGIN:VEVENT
UID:AUniqueIDThatMatches
SEQUENCE:0
DTSTAMP:20181004T184001Z
DTSTART:20181005T210000Z
DTEND:20181005T213000Z
SUMMARY:SESSION
LOCATION:Online session
DESCRIPTION:SESSION
ORGANIZER;CN="Admin":mailto:support@domain.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN="Admin":MAILTO:support@domain.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN="ben hart":MAILTO:attendee@domain.com
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT10M
DESCRIPTION:SESSION
END:VALARM
BEGIN:VALARM
ACTION:AUDIO
TRIGGER:-PT5M
ATTACH;VALUE=URI:Basso
END:VALARM
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
取消ICS:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//sebbo.net//ical-generator//EN
METHOD:CANCEL
BEGIN:VEVENT
UID:AUniqueIDThatMatches
SEQUENCE:1
DTSTAMP:20181004T184057Z
DTSTART:20181005T210000Z
DTEND:20181005T213000Z
SUMMARY:SESSION
LOCATION:Online session
DESCRIPTION:SESSION
ORGANIZER;CN="Admin":mailto:support@domain.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN="Admin":MAILTO:support@domain.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN="ben hart":MAILTO:attendee@domain.com
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT10M
DESCRIPTION:SSESSION
END:VALARM
BEGIN:VALARM
ACTION:AUDIO
TRIGGER:-PT5M
ATTACH;VALUE=URI:Basso
END:VALARM
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR
答案 0 :(得分:0)
首先,如果这是邀请,那么您应该拥有
METHOD:REQUEST
代替原始邀请中的METHOD:PUBLISH。这一点很重要,因为从理论上讲,取消仅在请求后才有效。
然后,您应该从两条消息中删除VALARM垃圾。无论如何,它们都将在请求中被忽略。
最后,您是否在取消电子邮件的内容类型中包含正确的方法?