2013-08-14 2 views
0

사용자가 쉽게 가져올 수 있도록 PhicsMailer를 통해 .ics 파일을 보내려고합니다.Gmail (PhpMailer)의 ICS 파일

Outlook으로 보낼 때 제대로 작동하지만 Gmail에서 파일을 인식하지 못하므로 Google 캘린더로 가져올 수 없습니다.

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

파일은 잘 부착됩니다 만, Gmail에서 인식되지 않습니다

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 코드는 다음과 같습니다

내 ICS 파일은 다음과 같다. I는 첨부 올바르게 첨가 문자열 첨부

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

로 추가했는데, Gmail에 다시에서 '임포트'달력 이벤트로서 인식되지 않는다.

동일한 이메일에 HTML 본문이 있음에 유의해야합니다.

이것이 작동하지 않는 이유에 대한 설명은 훌륭합니다.

답변

1

내가 DTEND 및 DTSTART 분명히이 Gmail에서 인식되지 후 TZID를 제거하여 고정 .. 답변을 잊어 버렸습니다.

0

다음 Google 용 PRODID를 확인했습니다. 그것은 작동합니다. 그러나 우리가 실제로 그것을 사용할 수 있는지 여부는 확실하지 않습니다. 나는 iCalendar를 처음 사용합니다.

- // 구글 Inc의 // Gmail을 사용할 때 70.9054 // EN

귀하의 PRODID 나를 위해 작동하지 않았다 Google 캘린더.