2011-08-03 4 views
0

몇 가지 문제가 있습니다. Outlook 사용자가 캘린더에 일정을 추가 할 수 있도록 ics 파일을 보내려고합니다. 2010 년과 같은 일부 버전에서는 잘 작동하지만 (가정용 버전) 일부는 (업무용처럼) 직접 인식하지 못합니다. 미리 볼 수 있도록 내용을 두 번 클릭해야합니다. 다른 버전에서는 메일을 클릭했을 때 바로 캘린더 옵션이 표시됩니다.ics 파일이 Outlook에서 인식되지 않습니다.

내가 뭘 잘못하고 있니?

다음은 캘린더 코드입니다.

$str="BEGIN:VCALENDAR\r\n 
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN\r\n 
VERSION:2.0\r\n 
METHOD:REQUEST\r\n 
X-MS-OLK-FORCEINSPECTOROPEN:TRUE\r\n 
BEGIN:VTIMEZONE\r\n 
TZID:GTB Standard Time\r\n 
BEGIN:STANDARD\r\n 
DTSTART:16011028T000000\r\n 
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10\r\n 
TZOFFSETFROM:+0300\r\n 
TZOFFSETTO:+0200\r\n 
END:STANDARD\r\n 
BEGIN:DAYLIGHT\r\n 
DTSTART:16010325T000000\r\n 
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3\r\n 
TZOFFSETFROM:+0200\r\n 
TZOFFSETTO:+0300\r\n 
END:DAYLIGHT\r\n 
END:VTIMEZONE\r\n 
BEGIN:VEVENT\r\n 
ATTENDEE;[email protected];RSVP= 
TRUE:mailto:[email protected]\r\n 
CLASS:PUBLIC\r\n 
CREATED:20110803T133418Z\r\n 
DTEND:$endtime_ics\r\n 
DTSTAMP:20110803T095605Z\r\n 
DTSTART:$starttime_ics\r\n 
LAST-MODIFIED:20110803T133418Z\r\n 
ORGANIZER;CN=\"Silvian Iosub\":mailto: 
[email protected]\r\n 
PRIORITY:5\r\n 
SEQUENCE:0\r\n 
SUMMARY;LANGUAGE=ro:New Event\r\n 
TRANSP:OPAQUE\r\n 
UID:".MD5(TIME())."-85d2-69b00dea0ad4\r\n 
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE\r\n 
X-MICROSOFT-CDO-IMPORTANCE:1\r\n 
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\n 
X-MICROSOFT-DISALLOW-COUNTER:FALSE\r\n 
X-MS-OLK-AUTOSTARTCHECK:FALSE\r\n 
X-MS-OLK-CONFTYPE:0\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"; 

이메일을 보내기 위해 빠른 클래스를 사용하고 있습니다. 여기 설정은 다음과 같습니다

$attachment = Swift_Attachment::newInstance() 
          ->setFilename("Invitatie.ics") 
          ->setContentType('text/calendar;method=REQUEST;charset=UTF-8;') 
          ->setBody($str) 
       ->setDisposition("inline,filename=".$confDesc.".ics"); 
     $message2->attach($attachment); 
+0

따옴표 사이에 있어야합니다. 그것은 확실히 클라이언트 설정입니다. – mario

+0

ICS 파일은 캘린더 데이터를 포함하는 일반 텍스트 일 ​​뿐이므로'header ('Content-type : text/calendar')'를 출력해야 할 것입니다. –

답변

3

에서 ICS 파일을 검증하려고 :

콘텐츠 유형 : 다중/대안;

그리고 다음 ICS에 대한

는 일부 파일 :

Content-Type: text/calendar; charset="utf-8"; name="testcal.ics" method=REQUEST'."\r\n"; 
Content-Disposition: inline; filename="testcal.ics"'."\r\n"; 

NB : \r\n 더블 클릭에 대한 요구 사항은 파일 내용과 거의가

+0

이것이 내가 필요한 것입니다! 내 문제를 해결 했어, 고마워! – mudlee

관련 문제