2012-06-05 46 views
0

Vcalendar在Windows Outlook中运行良好,但在MAC Outlook中不起作用。它显示了下面的消息时,我收到通过电子邮件预约:PHP VCALENDAR无法在MAC Outlook中工作

charset="UTF-8" 
Content-Transfer-Encoding: 7bit 

BEGIN:VCALENDAR 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
UID:UID:20120605T112338-532614004-testing 
DTSTAMP:20120605T112338 
DTSTART:20120605T112338 
SUMMARY: Appointment testing 
DESCRIPTION: Test appointment 
END:VEVENT 
END:VCALENDAR 

这里是我使用的约会创建的代码:

 $myUID="UID:".date('Ymd').'T'.date('His')."-".rand()."-test".$eol; // required by Outlok 
     $message="BEGIN:VCALENDAR".$eol; 
     $message.="VERSION:2.0".$eol; 
     //$message.="PRODID:-//Foobar Corporation//NONSGML Foobar//EN\n"; 
     $message.="METHOD:REQUEST".$eol; // requied by Outlook 
     $message.="BEGIN:VEVENT".$eol; 
     $message.="UID:".$myUID; // required by Outlok 
     $message.="DTSTAMP:".date('Ymd').'T'.date('His').$eol; // required by Outlook 
     $message.="DTSTART:".date('Ymd').'T'.date('His').$eol; 
     $message.="SUMMARY: $attachment_subject".$eol; 
     $message.="DESCRIPTION: $notes".$eol; 
     $message.="END:VEVENT".$eol; 
     $message.="END:VCALENDAR".$eol;  
     $headers = "From: $User <$User_Email>".$eol; 
     $headers .= "MIME-Version: 1.0".$eol; 
     $headers .= "Content-Type: text/calendar; method=REQUEST;".$eol; 
     $headers .= 'charset="UTF-8"'; 
     $headers .= $eol; 
     $headers .= "Content-Transfer-Encoding: 7bit"; 
     mail("$Email", $subject, $message, $headers) 
+0

“它显示下面的消息”?这不是一条消息,那是* vcal文件。你需要给我们更多关于你在做什么以及发生了什么的细节。 – deceze

+0

我编辑了我正在做的事情。你能帮忙吗? – Sam222

+0

我可以帮忙吗? – Sam222

回答

0

我做了一些关于它的更多的研究和修改代码根据MAC展望的要求,但仍然是代码而不是约会作为电子邮件事件:

$message="BEGIN:VCALENDAR".$eol; 
$message.="VERSION:2.0".$eol; 
$message.="PRODID:-//Microsoft Corporation//Entourage Mac 11.0 MIMEDIR//EN\n"; 
$message.="METHOD:REQUEST".$eol; // requied by Outlook 
$message.="BEGIN:VTIMEZONE".$eol; 
$message.="TZID:Abu Dhabi, Muscat".$eol; 
$message.="X-ENTOURAGE-TZID:23".$eol; 
$message.="X-ENTOURAGE-CFTIMEZONE:Asia/Muscat".$eol; 
$message.="BEGIN:STANDARD".$eol; 
$message.="TZNAME:Standard".$eol; 
$message.="TZOFFSETFROM:+0400".$eol; 
$message.="TZOFFSETTO:+0400".$eol; 
$message.="DTSTART:20090101T010000".$eol; 
$message.="END:STANDARD".$eol; 
$message.="END:VTIMEZONE".$eol; 
$message.="BEGIN:VEVENT".$eol; 
$message.="UID:E153D577-98BB-4EEE-8FC9-B526A7D09DD1"; 
$message.="X-ENTOURAGE_UUID:E153D577-98BB-4EEE-8FC9-B526A7D09DD5".$eol; 
$message.="DTSTAMP:".date('Ymd').'T'.date('His').$eol; $message.="DTSTART;TZID='Abu Dhabi, Muscat':20120610T010000".$eol; 
$message.="DTEND;TZID='Abu Dhabi, Muscat':20120610T013000".$eol; 
$message.="LAST-MODIFIED:20120609T204400Z".$eol; 
$message.="SUMMARY: $attachment_subject".$eol; 
$message.="DESCRIPTION: $notes".$eol; 
$message.="ORGANIZER:MAILTO:[email protected]".$eol; 
$message.="SEQUENCE:0".$eol; 
$message.="ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE;CN='Test Contact';PARTSTAT=NEEDS-ACTION:MAILTO:[email protected]".$eol; 
$message.="X-MICROSOFT-CDO-BUSYSTATUS:BUSY".$eol; 
$message.="X-MICROSOFT-CDO-ALLDAYEVENT:FALSE".$eol; 
$message.="X-MICROSOFT-CDO-INSTTYPE:0".$eol; 
$message.="BEGIN:VALARM".$eol; 
$message.="ACTION:DISPLAY".$eol; 
$message.="DESCRIPTION:REMINDER".$eol; 
$message.="TRIGGER;RELATED=START:-PT00H15M00S".$eol; 
$message.="END:VALARM".$eol; 
$message.="END:VEVENT".$eol; 
$message.="END:VCALENDAR"; 
$headers = "From: $User <$User_Email>".$eol; 
$headers .= "MIME-Version: 1.0".$eol; 
$headers .= "Content-Type: text/calendar;method=REQUEST;".$eol; 
$headers .= 'charset="UTF-8";name="meeting.ics"'; 
$headers .= $eol; 
$headers .= "Content-Transfer-Encoding: 7bit"; 
+0

你解决了这个问题吗? – danyo