Java 未分析iCalendar会议响应

Java 未分析iCalendar会议响应,java,jakarta-mail,icalendar,activesync,Java,Jakarta Mail,Icalendar,Activesync,我正在尝试创建一个可以使用ActiveSync接受会议邀请的客户端。我通过ActiveSync处理meetingresponse,但当我向组织者发送确认电子邮件并附加iCalendar格式的回复时,服务器并没有像应该的那样解析它。相反,它会转换为附件,用户的与会者状态永远不会更新 这是我发送的MIME电子邮件: From: t@xxx.ca To: Tester Testing <test@xxx.ca> Message-ID: <i8swl8yv.-4t2@-13874080

我正在尝试创建一个可以使用ActiveSync接受会议邀请的客户端。我通过ActiveSync处理meetingresponse,但当我向组织者发送确认电子邮件并附加iCalendar格式的回复时,服务器并没有像应该的那样解析它。相反,它会转换为附件,用户的与会者状态永远不会更新

这是我发送的MIME电子邮件:

From: t@xxx.ca
To: Tester Testing <test@xxx.ca>
Message-ID: <i8swl8yv.-4t2@-1387408011.xxx.ca>
Subject: Accepted: Test 11:36 Wed
MIME-Version: 1.0
Content-Type: multipart/alternative; 
 boundary="----=_Part_0_1114661696.1429717004439"

------=_Part_0_1114661696.1429717004439
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

these are forced comments
------=_Part_0_1114661696.1429717004439
Content-Type: text/calendar; method=REPLY; charset=utf-8; name=meeting.ics
Content-Transfer-Encoding: quoted-printable

BEGIN:VCALENDAR
METHOD:REPLY
PRODID:XXXEmail
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:t@xxx.ca
ORGANIZER:MAILTO:test@xxx.ca
DTSTART:20150422T120000
DTEND:20150422T123000
DTSTAMP:20150422T113625
LOCATION;LANGUAGE=en-US:here
UID:3D6D7B89-DE7E-45A1-B916-19DEDB2B1ADC
CLASS:PUBLIC
STATUS:CONFIRMED
TRANSP:OPAQUE
PRIORITY:5
SEQUENCE:0
END:VEVENT
END:VCALENDAR

------=_Part_0_1114661696.1429717004439--
来自:t@xxx.ca
至:测试人员测试
消息ID:
主题:接受:考试11:36周三
MIME版本:1.0
内容类型:多部分/备选;
boundary=“---=\u Part\u 0\u 1114661696.1429717004439”
------=_零件_0_1114661696.1429717004439
内容类型:文本/纯文本;字符集=UTF-8
内容传输编码:引用可打印
这些都是被迫的评论
------=_零件_0_1114661696.1429717004439
内容类型:文本/日历;方法=答复;字符集=utf-8;name=meeting.ics
内容传输编码:引用可打印
开始:VCALENDAR
方法:答复
PRODID:XXXEmail
版本:2.0
开始:VEVENT
与会者;PARTSTAT=ACCEPTED:MAILTO:t@xxx.ca
组织者:邮寄至:test@xxx.ca
DTSTART:2015042T120000
数据端:2015042T123000
DTSTAMP:2015042T113625
位置;这里
UID:3D6D7B89-DE7E-45A1-B916-19DEDB2B1ADC
类别:公共
状态:已确认
运输:不透明
优先次序:5
序列:0
完:维文特
完:VCALENDAR
------=_零件_0_1114661696.1429717004439--
有人认为iCalendar的回复有问题吗?或者mime是如何格式化的?或者你知道为什么这行不通吗

编辑: 根据要求,以下是在服务器上正确解析的MIME电子邮件示例:

Content-Type: multipart/alternative; boundary="===============0124021817=="
X-Client-ID: 57
X-Mailer: BlackBerry Email (10.3.1.2576)
Message-ID: <20150422140519.5439570.43618.57@xxx.ca>
Date: Wed, 22 Apr 2015 10:05:19 -0400
Subject: Accepted: test at 10:04 Wed
From: <t@xxx.ca>
To: <test@xxx.ca>
MIME-Version: 1.0

--===============0124021817==
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Commment

--===============0124021817==
Content-Type: text/calendar; charset="utf-8"; name="meeting.ics"; method=REPLY
Content-Transfer-Encoding: quoted-printable

BEGIN:VCALENDAR
PRODID:-//Research In Motion//RIM App//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REPLY
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=3DYEARLY;BYDAY=3D1SU;BYMONTH=3D11
TZNAME:EST
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=3DYEARLY;BYDAY=3D2SU;BYMONTH=3D3
TZNAME:EDT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;RSVP=3DTRUE;ROLE=3DREQ-PARTICIPANT;CN=3DTest Test;PARTSTAT=3DACCE=
PTED:mailto:
 t@xxx.ca
COMMENT:Commment
CREATED:20150422T140505Z
DTEND;TZID=3DAmerica/New_York:20150422T110000
DTSTAMP:20150422T140518Z
DTSTART;TZID=3DAmerica/New_York:20150422T103000
LOCATION:here
ORGANIZER;CN=3DTesting Tester:mailto:test@xxx.ca
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:test at 10:04 Wed
TRANSP:OPAQUE
UID:A885C120-ABAD-4418-AB24-8B93E57194F0
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:test at 10:04 Wed in 15 minutes.
TRIGGER;RELATED=3DSTART:-PT15M
X-WR-ALARMUID:9b758290-e8f8-11e4-afff-b57e838ad0c3
END:VALARM
END:VEVENT
END:VCALENDAR

--===============0124021817==--
内容类型:多部分/备选;边界=“======================012402817==”
X-Client-ID:57
X-Mailer:BlackBerry电子邮件(10.3.1.2576)
消息ID:
日期:2015年4月22日星期三10:05:19-0400
主题:接受:周三10:04测试
发件人:
致:
MIME版本:1.0
--===============0124021817==
内容类型:文本/纯文本;charset=“us ascii”
内容传输编码:引用可打印
命令
--===============0124021817==
内容类型:文本/日历;charset=“utf-8”;name=“meeting.ics”;方法=答复
内容传输编码:引用可打印
开始:VCALENDAR
PRODID:-//动态研究//RIM应用程序//EN
版本:2.0
CALSCALE:格里高利
方法:答复
开始:VTIMEZONE
TZID:美国/纽约
开始:标准
DTSTART:20071104T020000
RRULE:FREQ=3年;BYDAY=3D1SU;BYMONTH=3D11
名称:EST
TZOFFSETFROM:-0400
特佐菲托:-0500
完:标准
开始:白天
DTSTART:20070311T020000
RRULE:FREQ=3年;BYDAY=3D2SU;BYMONTH=3D3
名称:EDT
TZOFFSETFROM:-0500
佐菲托:-0400
完:白天
完:VTIMEZONE
开始:VEVENT
与会者;RSVP=3DTRUE;角色=3DREQ-参与者;CN=3DTest;PARTSTAT=3DACCE=
PTED:mailto:
t@xxx.ca
评论:Commment
创建日期:2015042T140505Z
数据终端;TZID=3美国/纽约:2015042T110000
DTSTAMP:2015042T140518Z
DTSTART;TZID=3美国/纽约:2015042T103000
地点:这里
组织者CN=3DTesting Tester:mailto:test@xxx.ca
序列:0
状态:已确认
小结:周三10:04进行测试
运输:不透明
UID:A885C120-ABAD-4418-AB24-8B93E57194F0
开始:VALARM
行动:显示
描述:在星期三10:04分15分钟内进行测试。
触发相关=3DSTART:-PT15M
X-WR-ALARMUID:9b758290-e8f8-11e4-afff-b57e838ad0c3
完:瓦拉姆
完:维文特
完:VCALENDAR
--===============0124021817==--
我尝试过包含时区信息,但仍然不起作用。我有另一个电子邮件程序,它也可以正确地接受会议邀请,我的iCalendar附件基本上与他们的相同(它们对iCalendar附件进行了64位编码,我也尝试过,但没有成功)

当使用不同的MIME编写器(这一个来自Android开源项目)时,我发送给它的vCalendar内容被正确解释和解析。我看不出MIME格式有什么不同(除了Base64编码,我尝试了,但没有成功)

日期:2015年4月27日星期一14:22:43-0400
主题:已接受:测试事件星期一2:22
消息ID:
发件人:t@xxx.ca
致:“测试人员测试”
MIME版本:1.0
内容类型:多部分/备选;boundary=“_com.android.email_7881218929099440”
----_com.android.email_7881218929099440
内容类型:文本/纯文本;字符集=utf-8
内容传输编码:base64
----_com.android.email_7881218929099440
内容类型:文本/日历;
name=“meeting.ics”
内容传输编码:base64
QKVHSU46VKNbTEVOREFSDqPNRRIT0Q6UKVqTfKNbBfBfBfBfBfBfBfBfBfBfBfBfBfBfKvKvKvKvKvKfGzYNfRfRf5MtlBlui4RkixUqZU1TbWfRfWfWfRfNfRfNfRfNfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKvKQ0KTE9DQVRJT047TEFOR1VBR0U9ZW4TVVM6AGVYZQ0KQ0XBU6UFVCTELDQPTVEVFVM6Q09ORKLSTUVEDQPUKFOU1BFUFdQPFDQQQQVVWWrU5UDQPFTQ6VbTEVOREFs
----_com.android.email_7881218929099440--

尝试使用multipart/mixed而不是multipart/alternative。

感谢您的回复,不幸的是我得到了同样的结果。.ics文件显示为附件,服务器从未解析过它。您是否有一封由另一个程序创建的确认电子邮件示例,它确实被服务器正确解析了?请参阅上面的原始问题,我已对其进行了编辑,以包括一封按预期工作的MIME示例。有趣的是,它使用了多部分/备选方案,但很明显,这对你也不起作用。除此之外,消息的MIME结构似乎没有任何显著差异,这表明问题出在vcalendar内容中。你能试着用一个工作vcalendar部分的副本,做一些小的调整,使它看起来像一个不同的约会吗?好的,所以我试着重用vcalendar内容(UID除外)来接受一个相同的会议,结果还是一样。这里还有另外两件奇怪的事情:当我在Outlook中查看我发送的邮件的源邮件时,我看到服务器已经更改了邮件(它已经更改了)
Date: Mon, 27 Apr 2015 14:22:43 -0400
Subject: Accepted: test event Monday 2:22
Message-ID: <i907pyoo.17vp@-1387408011.xxx.ca>
From: t@xxx.ca
To: "Tester Testing" <test@xxx.ca>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=" _com.android.email_7881218929099440"

----_com.android.email_7881218929099440
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

----_com.android.email_7881218929099440
Content-Type: text/calendar;
 name="meeting.ics"
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVQTFkNClBST0RJRDpYWFhFbWFpbA0KVkVSU0lPTjoyLjANCkJFR0lOOlZFVkVOVA0KVUlEOkFGQzMyNURELTk1MjYtNENFRS05MTlBLUI4RkIxQzU1RTBCQw0KQVRURU5ERUU7UEFSVFNUQVQ9QUNDRVBURUQ6TUFJTFRPOnRAeHh4LmNhDQpPUkdBTklaRVI6TUFJTFRPOnRlc3RAeHh4LmNhDQpEVFNUQVJUOjIwMTUwNDI3VDE0MzAwMA0KRFRFTkQ6MjAxNTA0MjdUMTUwMDAwDQpEVFNUQU1QOjIwMTUwNDI3VDE0MjIzMQ0KTE9DQVRJT047TEFOR1VBR0U9ZW4tVVM6aGVyZQ0KQ0xBU1M6UFVCTElDDQpTVEFUVVM6Q09ORklSTUVEDQpUUkFOU1A6T1BBUVVFDQpQUklPUklUWTo1DQpTRVFVRU5DRTowDQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVOREFS

----_com.android.email_7881218929099440--