我将此ical作为多部分/多部分电子邮件的一部分发送。然而,我在outlook中收到了一个错误"不支持的日历消息。ics"我已经确认我有一个与会者和一个组织者,所以我不知道为什么会发生这种情况。
$ical = 'BEGIN:VCALENDAR' . "'r'n" .
'PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN' . "'r'n" .
'VERSION:2.0' . "'r'n" .
'METHOD:REQUEST' . "'r'n" .
'BEGIN:VTIMEZONE' . "'r'n" .
'TZID:Central Time' . "'r'n" .
'BEGIN:STANDARD' . "'r'n" .
'DTSTART:20141101T020000' . "'r'n" .
'RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11' . "'r'n" .
'END:STANDARD' . "'r'n" .
'BEGIN:DAYLIGHT' . "'r'n" .
'DTSTART:20090301T020000' . "'r'n" .
'RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3' . "'r'n" .
'TZOFFSETFROM:-0500' . "'r'n" .
'TZOFFSETTO:-0400' . "'r'n" .
'TZNAME:EDST' . "'r'n" .
'END:DAYLIGHT' . "'r'n" .
'END:VTIMEZONE' . "'r'n" .
'BEGIN:VEVENT' . "'r'n" .
'ORGANIZER;CN="'.$rep.'":MAILTO:'.$repemail. "'r'n" .
'ATTENDEE;CN="'.$to_name.'";ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:'.$to_address. "'r'n" .
'LAST-MODIFIED:' . date("Ymd'TGis") . "'r'n" .
'UID:'.date("Ymd'TGis", strtotime($startTime)).rand()."@".$domain."'r'n" .
'DTSTAMP:'.date("Ymd'TGis"). "'r'n" .
'DTSTART;TZID="Central Time":'.date("Ymd'THis", strtotime($startTime)). "'r'n" .
'DTEND;TZID="Central Time":'.date("Ymd'THis", strtotime($endTime)). "'r'n" .
'TRANSP:OPAQUE'. "'r'n" .
'SEQUENCE:1'. "'r'n" .
'DESCRIPTION: '.$description. "'r'n" .
'SUMMARY:' . $subject . "'r'n" .
'LOCATION:' . $location . "'r'n" .
'CLASS:PUBLIC'. "'r'n" .
'PRIORITY:5'. "'r'n" .
'BEGIN:VALARM' . "'r'n" .
'TRIGGER:-PT15M' . "'r'n" .
'ACTION:DISPLAY' . "'r'n" .
'DESCRIPTION:Reminder' . "'r'n" .
'END:VALARM' . "'r'n" .
'END:VEVENT'. "'r'n" .
'END:VCALENDAR'. "'r'n";
// Send Appointment .ical file
$message .= 'Content-Type: text/calendar;name="message.ics";method=REQUEST'n';
$message .= "Content-Transfer-Encoding: 8bit'n'n";
$message .= $ical;
您正在处理outlook嗅探器,这是一项在收到邀请时处理邀请的任务。它挑剔得离谱,而且没有文档。首先在在线验证器中检查您的Icalendar。然后,从gmail向Outlook发送邀请。使用Gmail"显示原件"来检查生成的Icalendar。更改您的应用程序以完全匹配gmail邀请,包括字段的顺序,您应该会发现Outlook正确处理了您的邀请。