我发送会议邀请函作为电子邮件,其中包含来自Java Web应用程序的ICS附件。当我将其发送给不使用Exchange服务器的Outlook用户时,一切正常。他们获得适当的接受/拒绝按钮,并可以将会议添加到他们的日历。
但是,对于Exchange服务器上的用户而言,事情并不适用。他们获得会议邀请,但它将自己列为会议组织者,他们无法更改任何会议详细信息。他们无法接受或拒绝,也无法将其添加到日历中。这几乎就像Exchange正在改变或不喜欢我们发送的ICS的格式,但正常的Outlook处理它就好了。
这是我们发送的ICS。除了Gmail和非Exchange Outlook用户之外,是否有人知道我们可以为Exchange用户更改这项工作。
BEGIN:VCALENDAR
PRODID:-//fincrm//iCal4j 1.0//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
UID:128
DTSTAMP:20110927T191127Z
DTSTART;VALUE=DATE-TIME:20110928T082000
DTEND;VALUE=DATE-TIME:20110928T085000
ACTION:DISPLAY
DESCRIPTION:Time is set to 8:20 AM
SEQUENCE:0
ORGANIZER:MAILTO:user1@ltest.com
LOCATION:Financial CRM Application
ATTENDEE:MAILTO:user2@test2.com
SUMMARY:CRM Task #128
END:VEVENT
END:VCALENDAR
感谢您的建议。
答案 0 :(得分:1)
我已经发现将ICS作为Multipart MIME消息发送似乎适用于Gmail和Exchange。以下是一些相关的Java代码(“calendar”是ICS字符串)
// Create an alternative Multipart
Multipart mp = new MimeMultipart("alternative")
BodyPart textPart = new MimeBodyPart();
textPart.setText(eventDescription);
BodyPart calPart = new MimeBodyPart();
calPart.addHeader("content-class", "urn:content-classes:calendarmessage")
calPart.setContent(calendar.toString(), "text/calendar;method=REQUEST")
mp.addBodyPart(textPart);
mp.addBodyPart(calPart);
答案 1 :(得分:0)
我知道这是前一段时间,但您可以使用此处找到的注册表修复解决此问题:
http://support.microsoft.com/kb/944094
我使用在Exchange 2010上运行的Outlook 2010对此进行了测试,当您是组织者时,这允许将第三方事件输入日历。
答案 2 :(得分:0)
我发现如果将组织者设置为您,则Mac上的Outlook 2011将不会将会议添加到您的日历中。从会议中删除管理器似乎运作良好。
我还发现,如果ICS附件不附加到多部分邮件的最后项,则会将其删除。