3

要約すると、私は現在イベント確認システムを実装しており、ICalendar 応答の適切な形式を見つけることができません。したがって、完全な REPLY メッセージの例と、それをすべてラップする PHP ライブラリがあるのではないでしょうか?

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

ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="'user@company.com'":MAILTO:user@company.com ORGANIZER;CN="Organ Izer":MAILTO:organizer@company.com

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:abcdef@gmail.com
UID:oc7ae7537999onscsivg8km123@google.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=CONFIRMED;RSVP=
 TRUE;CN=jc@company.se;X-NUM-GUESTS=0:mailto:jc@company.se
LOCATION:
SEQUENCE:1
END:VEVENT
END:VCALENDAR';

mail('abcdef@gmail.com', 'Accepted:', "Event accepted", $headers);

Ical メッセージまたはメソッド自体に何か問題がありますか? これは、イベントの返信が送信されるはずの方法ですか?

4

2 に答える 2

7

次のコードは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:example@gmail.com
UID:u2coh5g3bppo2d2o3t@google.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;
 CN=user@example.se:mailto:user@example.se
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('example@gmail.com', 'Jean-Charles');
$mail->Body = "HTML BODY";
$mail->AltBody = "Text body";
$mail->Subject = "Email title";
$mail->Sender = "User Name";
$mail->FromName = "user@example.se";
$mail->AddStringAttachment($vcal, 'meeting.ics', "base64", "text/calendar");
$mail->Send();

重要なビットは

  • コンテンツタイプ:テキスト/カレンダー
  • 方法:返信
  • PARTSTAT:承認済み|拒否済み
  • UID

すべての冗長な情報(説明、要約、dtend、dtstart)を返送する必要があるかどうかはわかりません

于 2010-12-14T10:34:38.757 に答える
0

次の解決策は私のために働いた:

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

このメソッドは、ical 形式を添付しません。

于 2013-11-01T14:56:50.307 に答える