我正在通过PHP向Outlook发送会议邀请邮件。以下代码,我正在使用
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20150501T080000Z
DTEND:20150502T090000Z
DTSTAMP:20150511T075116Z
ORGANIZER;CN=Jass:mailto:jaspreet@anlita.se
UID:12345678123
ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP= TRUE;CN=Sample:mailto:sample@test.com
DESCRIPTION:Complete event on http://www.sample.com/get_event.php?id=12345678
LOCATION: India
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:TESTING timezones
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
问题
当用户收到邮件而不是接受和拒绝时,它显示不是最新的,当我点击它然后它显示警告"此会议请求已过期,现在将被删除"
究竟是什么原因?我无法理解。
答案 0 :(得分:1)
您的日历中可能已经有一个具有相同UID的事件:
UID:12345678123
简短回答:如果这是一个全新的非核心事件,则始终生成全球唯一的UID
答案很长: 当通过电子邮件收到已存在的事件的邀请时,客户需要根据以下内容将其现有副本与收到的副本进行比较:
如果收到的更新早于客户端的事件,则会被丢弃。
因此,在生成更新时,如果对事件的更新最小,则可以使用稍后的DTSTAMP。如果变化足够大(例如DTSTART变化),则必须增加SEQUENCE编号。
答案 1 :(得分:1)
有几件事:
确保日历文件夹中不存在使用相同UID 12345678123的约会。
确保DTSTAMP未来不包含日期。