2010-12-13 17 views
2

要約は、今私はイベント確認システムを実装しており、ICalendar応答の正しいフォーマットを見つけることができないということです。したがって、完全なREPLYメッセージと、おそらくそれを包むPHPライブラリの例があるのだろうか?IcalendarイベントRSVPの標準と実装はありますか

詳細については、RSVPを求めるイベント招待状を含む外部メールを受け取ります。ここでのiCalファイルの抜粋です。

ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="'[email protected]'":MAILTO:[email protected] ORGANIZER;CN="Organ Izer":MAILTO:[email protected]

私は主催者にRSVPを送信するための返信標準を見つけることができませんでした。 RFC 2447には、「ATTSTAT」および「PARTSTAT」パラメータが記載されています。

Googleカレンダーに次のメッセージを送信しようとすると、イベントは更新されていません。

$headers = "Content-Type:text/calendar; Content-Disposition: inline; charset=utf-8;\r\n"; 
$headers .= "Content-Type: text/plain;charset=\"utf-8\"\r\n"; 
$headers .= 'BEGIN:VCALENDAR 
VERSION:2.0 
METHOD:REPLY 
BEGIN:VEVENT 
ORGANIZER;CN=JCharles:mailto:[email protected] 
UID:[email protected] 
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=CONFIRMED;RSVP= 
TRUE;[email protected];X-NUM-GUESTS=0:mailto:[email protected] 
LOCATION: 
SEQUENCE:1 
END:VEVENT 
END:VCALENDAR'; 

mail('[email protected]', 'Accepted:', "Event accepted", $headers); 

Icalメッセージまたはその方法自体に問題はありますか?これはイベントの返信が送信されることになっていますか?

答えて

5

次のコードはGoogleカレンダーで使用できます。添付ファイルはgmailで処理され、受け入れはイベントにカスケード接続されます。

$vcal = 'BEGIN:VCALENDAR 
PRODID:-//EXAMPLE.NU//SE 
VERSION:2.0 
CALSCALE:GREGORIAN 
METHOD:REPLY 
BEGIN:VEVENT 
DTSTART:20101215T160000Z 
DTEND:20101215T170000Z 
DTSTAMP:'.date('Ymd\THis\Z').' 
ORGANIZER;CN=Jean-Charles:mailto:[email protected] 
UID:[email protected] 
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED; 
[email protected]:mailto:[email protected] 
CREATED:19000101T120000Z 
DESCRIPTION:äåóö 
LAST-MODIFIED:'.date('Ymd\THis\Z').' 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:a new test 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 
'; 

$vcal = utf8_encode($vcal); 

require('lib/phpmailer/class.phpmailer.php'); 
$mail = new PHPMailer(); 
$mail->AddAddress('[email protected]', 'Jean-Charles'); 
$mail->Body = "HTML BODY"; 
$mail->AltBody = "Text body"; 
$mail->Subject = "Email title"; 
$mail->Sender = "User Name"; 
$mail->FromName = "[email protected]"; 
$mail->AddStringAttachment($vcal, 'meeting.ics', "base64", "text/calendar"); 
$mail->Send(); 

重要なビットがある

  • コンテンツタイプ:テキスト/カレンダー
  • METHOD:REPLY
  • PARTSTAT:ACCEPTED |

私はUID

  • の減少となりましたすべての冗長な情報を返す必要があるかどうかはわかりません(des cription、要約、DTEND、DTSTART)

  • 0

    次のソリューションは、私の仕事:

    $mail->Subject = $name; 
    $mail->Body = $description; 
    $mail->AltBody = $body; // ical format 
    $mail->Ical = $message; // ical format 
    

    この方法は、iCalの形式を添付していません。

    関連する問題