Я создал php-скрипт, который отправляет приглашения на событие iCalendar (на основе RFC 5545 ). Все работает нормально, но на iPhone (iOS 4.2.1) и iPad (iOS 5.1) у меня нет возможности принять / отклонить событие (которое появляется как mime-attachment.ics), только чтобы добавить его в мой календарь. В других почтовых клиентах (Outlook, Thunderbird, Gmail) это работает так, как ожидалось.
Поддерживает ли почтовый клиент iOS отправку таких ответов? Если да, то кто-нибудь знает, что я должен указать, чтобы сделать эту работу?
Вот пример содержимого файла ics:
BEGIN:VCALENDAR PRODID:-//Some organization//some application//EN VERSION:2.0 METHOD:REQUEST BEGIN:VEVENT UID:20120920T150350Z-70@http://localhost/www/ CREATED:20120920T150350Z DTSTAMP:20120921T080800Z DTSTART:20120921T080800Z DTEND:20120922T060800Z DESCRIPTION:Please attend this sample meeting SUMMARY:Invitation to attend training LOCATION:Earth ATTENDEE;RSVP=TRUE:mailto:periklis@example.com ORGANIZER;CN=periklis@example.com:mailto:periklis@example.com LAST-MODIFIED:20120921T080800Z PRIORITY:5 SEQUENCE:0 STATUS:CONFIRMED TRANSP:TRANSPARENT END:VEVENT END:VCALENDAR
После тщательного изучения RFC, вот что я использовал и работал:
BEGIN:VCALENDAR PRODID:-//Some organization//some application//EN VERSION:2.0 METHOD:REQUEST BEGIN:VEVENT UID:20120925T072912Z-140@http://localhost/www/ CREATED:20120925T072912Z DTSTAMP:20120922T090500Z DTSTART:20120922T090500Z DTEND:20120923T090500Z DESCRIPTION:Please attend this sample meeting SUMMARY:Invitation to attend training LOCATION:Earth ATTENDEE;RSVP=TRUE:mailto:periklis@example.com ORGANIZER;CN=periklis@example.com:mailto:periklis@example.com LAST-MODIFIED:20120922T090500Z PRIORITY:5 SEQUENCE:0 STATUS:CONFIRMED TRANSP:TRANSPARENT END:VEVENT END:VCALENDAR
Также стоит упомянуть, что вышеуказанные строки ДОЛЖНЫ быть разделены с помощью \ r \ n. Поэтому я назначил каждую строку члену массива, а затем взорвал массив:
$message[]='BEGIN:VCALENDAR'; $message[]='PRODID:-//Some organization//some application//EN'; [...] $message[]='END:VCALENDAR'; $message = implode("\r\n", $message);