12

我在使用 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_=_--
4

2 回答 2

16

您在内容类型中都缺少 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 属性)。

然后,一些客户端在 multipart/alternative 中忽略 iMIP 并且仅将其视为附件,因此您可能需要尝试以下结构:

multipart/mixed
  multipart/alternative
    text/plain
    text/calendar;method=REQUEST
  text/calendar (with a content-disposition:attachment)

本质上,您要添加两次附件。来自 google/yahoo 日历和闪电的 iMIP 邀请具有这样的结构。

于 2013-10-23T07:40:45.190 回答
8

要确保 Outlook 始终能够识别 iCal 部分,请创建一条消息,其中文本/日历是唯一的 MIME 部分。其他所有内容(主体、附件等)都应嵌入 VEVENT 部分。

于 2013-10-22T17:41:53.967 回答