我有一些問題。 我試圖發送一個ics文件,所以outlook用戶可以在他的日曆中添加事件。在一些版本中,比如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";
我正在使用Swift類發送電子郵件;具體設置如下:
$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);
到雙擊要求有一點做與該文件內容之間。這是肯定的客戶端設置。 – mario
你可能需要輸出一個'header('Content-type:text/calendar')',因爲ICS文件無論如何都只是純文本,恰好包含日曆數據。 –