Составная электронная почта с текстом и календарем: Outlook не распознает ics
У меня проблемы с Outlook 2007. При отправке "составного / альтернативного" электронного письма с "текстовой / календарной" частью Outlook распознает событие календаря, и так оно и должно быть. Но при добавлении "текстовой / простой" части Outlook отображает только простой текст, календарная часть отсутствует (но она присутствует в исходном коде электронного письма).
Источник выглядит так:
[...]
Content-Type: multipart/alternative;
boundary="_=_swift_v4_138243630552664dd1bc83e_=_"
--_=_swift_v4_138243630552664dd1bc83e_=_
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
[...the plain message...]
--_=_swift_v4_138243630552664dd1bc83e_=_
Content-Type: text/calendar; charset=utf-8
Content-Transfer-Encoding: quoted-printable
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//GourmetPortal//NONSGML rr//DE
BEGIN:VEVENT
UID:res-Burkert
CREATED:20131030T113000Z
ORGANIZER;CN=3DSven Burkert:MAILTO:[...]
SUMMARY:[...]
DESCRIPTION:[...]
DTSTART:20131030T113000Z
END:VEVENT
END:VCALENDAR
--_=_swift_v4_138243630552664dd1bc83e_=_--
2 ответа
Вам не хватает метода iTIP, оба в типе контента:
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
и как свойство VCALENDAR:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
PRODID:-//GourmetPortal//NONSGML rr//DE
Метод может быть PUBLISH или REQUEST (в этом случае вы также пропускаете некоторое свойство ATTENDEE).
Затем некоторые клиенты игнорируют iMIP в multipart/alternative и смотрят только как вложения, поэтому вам может понадобиться следующая структура:
multipart/mixed
multipart/alternative
text/plain
text/calendar;method=REQUEST
text/calendar (with a content-disposition:attachment)
По сути, вы добавляете вложение дважды. Приглашение iMIP из календаря google/yahoo и молнии имеют такую структуру.
Чтобы Outlook всегда распознавал часть iCal, создайте сообщение, в котором текст / календарь является единственной частью MIME. Все остальное (тело, вложения и т. Д.) Должно быть встроено в часть VEVENT.