PHP邮件错误”;不支持日历消息;iCal


PHP Mail Error "not supported calendar message.ics" iCal

我将此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正确处理了您的邀请。