2016-09-20 13 views
1

まずはコンピューティングの初心者です。PHPでサポートされていないカレンダーメッセージ

ics形式の新しいイベントを含むメールを自動的に送信するコードを記述しようとしています。 インターネットで始まるいくつかのコードサンプルが見つかりました。

はここ

$desc= 'Rendez-vous dans le cadre de la résolution du ticket'.$ticket_id; 
$headers = 'Content-Type:text/calendar; Content-Disposition: inline; charset=utf-8;\r\n'; 
$headers .= "Content-Type: text/plain;charset=\"utf-8\""; #EDIT: TYPO 
$message = "BEGIN:VCALENDAR 
          VERSION:2.0 
          PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN 
          METHOD:REQUEST 
          BEGIN:VEVENT 
          UID:" . md5(uniqid(mt_rand(), true)) . "example.com 
          DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z 
          DTSTART:".$startdate."T".$startTime."00Z 
          DTEND:".$enddate."T".$endTime."00Z 
          TRANSP:OPAQUE 
          SEQUENCE:0 
          SUMMARY:".$subject." 
          ORGANIZER;CN=".$organizer.":mailto:".$organizer_email." 
          LOCATION:".$location.', '.$site." 
          DESCRIPTION:".$desc." 
          PRIORITY:5 
          X-MICROSOFT-CDO-IMPORTANCE:1 
          CLASS:PUBLIC 
          ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:".$participant_email_1."      
          END:VEVENT 
          END:VCALENDAR"; 
$headers .= $message; 
mail($participant_email_1, $subject, $message, $headers); 

各変数が確認されている私のコードで、正常に動作します。私はいくつかの議論で見てきたように、主催者メールはメールの送信者と同じです。

しかし、私がメールを受け取ったとき、Outlookは「カレンダーmessage.icsをサポートしていない」と言います。ここmessage.icsの内容は次のとおりです。

BEGIN:VCALENDAR 
          VERSION:2.0 
          PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN 
          METHOD:REQUEST 
          BEGIN:VEVENT 
          UID:91090dc834f3536fc3f37af82c1abe3aexample.com 
          DTSTAMP:20160920T142802Z 
          DTSTART:20160923T100000Z 
          DTEND:20160923T12000Z 
          TRANSP:OPAQUE 
          SEQUENCE:0 
          SUMMARY:test 
          ORGANIZER;CN=Marguerite Duras:mailto:[email protected] 
          LOCATION:Bordeaux, test 
          DESCRIPTION:Rendez-vous dans le cadre de la résolution du ticket17 
          PRIORITY:5 
          X-MICROSOFT-CDO-IMPORTANCE:1 
          CLASS:PUBLIC 
          ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:[email protected]      
          END:VEVENT 
          END:VCALENDAR 

それは私の専門のアドレス... ですので、私は誰もが間違ってここに何が起こっているかのいずれかのアイデアを持ってくださいメールアドレスを変更しましたか? おおよその英語は申し訳ありませんが、私は外国語でとてもフランス語です...

ありがとうございました!

+0

Outlookで受信した完全なMIMEメッセージは、次のように各行の先頭にあるすべての空白を削除してください。 – arnaudq

答えて

0

各iCalendar行は、空白で始めることはできません。

$message = "BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN 
METHOD:REQUEST 
... 
END:VCALENDAR"; 
+0

ありがとうございました。確かに、それは宇宙の問題だった... –

関連する問題