我在使用Outlook 2007时遇到问题。当发送带有“文本/日历”部分的“multipart / alternative”电子邮件时,Outlook会识别日历事件,就是它必须如何。 但是,当添加“text / plain”部分时,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_=_--
答案 0 :(得分:11)
您在内容类型中缺少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/mixed
multipart/alternative
text/plain
text/calendar;method=REQUEST
text/calendar (with a content-disposition:attachment)
基本上,您要添加附件两次。来自谷歌/雅虎日历和闪电的iMIP邀请具有这样的结构。
答案 1 :(得分:3)
要确保Outlook始终识别iCal部分,请创建一条消息,其中text / calendar是唯一的MIME部分。其他所有东西(身体,附件等)都应嵌入VEVENT部分。