0

ユーザーが簡単にインポートできるように、PhpMailer 経由で .ics ファイルを送信しようとしています。

Outlook に送信する場合は問題なく動作しますが、Gmail はファイルを認識しないため、Google カレンダーにインポートするオプションがありません。

私の ics ファイルは次のようになります。

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Romance Standard Time
BEGIN:STANDARD
DTSTART:16011028T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
DTSTART:16010325T020000
BEGIN:DAYLIGHT
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
DESCRIPTION:
DTEND;TZID="Romance Standard Time":20130815T154000
DTSTAMP:20130814T094035Z
DTSTART;TZID="Romance Standard Time":20130815T144000
SUMMARY:Your appointment
LOCATION:1000 Brussels
END:VEVENT
END:VCALENDAR

私のphpコードは次のようになります。

$mail->AddAttachment('../linkToIcs.ics');

ファイルは正常に添付されますが、Gmail で認識されません。次に、文字列の添付ファイルとして追加してみました

if (pathinfo($attachment, PATHINFO_EXTENSION) == 'ics') {
    $contents = file_get_contents($attachment);
    $mail->AddStringAttachment(
        $contents,
        pathinfo($attachment, PATHINFO_BASENAME),
        '7bit',
        'text/calendar'
    );
}

添付ファイルとして正しく追加されましたが、Gmail で「インポート可能な」カレンダー イベントとして認識されません。

また、同じメールに HTML 本文があることにも注意してください。

これが機能しない理由についての説明は素晴らしいでしょう。

4

2 に答える 2

1

答え忘れ..

DTEND と DTSTART の後に TZID を削除して修正しましたが、どうやらこれは Gmail で認識されません。

于 2013-09-02T13:25:16.107 に答える