2011-08-03 10 views
0

私にはいくつか問題があります。 icsファイルを送信しようとしているため、Outlookユーザーはカレンダーに予定を追加できます。 2010年のような一部のバージョンでは、それはうまくいく(家庭版)が、それを直接認識しない(ビジネスのような)人もいます。プレビューできるように、コンテンツをダブルクリックする必要があります。 他のバージョンでは、メールをクリックした直後にカレンダーオプションが表示されます。outlookでicsファイルが認識されない

私は間違っていますか?

ここにカレンダーのコードを示します。

$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')'を出力する必要があるでしょう。 –

答えて

2

は実際に終了時刻を

DTEND:$endtime_ics\r\n 

出力しているか、あなたには、いくつかの構文が不足していますか?

また、あなたがこのヘッダを追加してください http://severinghaus.org/projects/icv/

3

でICSファイルを検証してみてください。

のContent-Type:マルチパート/ 代替

そしてICの

は、一部のファイル:

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

関連する問題