2011-09-28 71 views
3

我正在从Java Web应用程序发送包含ICS附件的电子邮件的会议邀请。当我将它发送给未使用Exchange服务器的Outlook用户时,一切正常。他们得到适当的接受/拒绝按钮,并可以将会议添加到他们的日历中。ICS电子邮件附件对于Exchange用户不起作用

但是,对于Exchange服务器上的用户来说,事情并不适用。他们得到一个会议邀请,但它将自己列为会议组织者,他们无法更改任何会议详细信息。他们无法接受或拒绝,也无法将其添加到日历中。

这几乎就像Exchange正在改变或不喜欢我们发送的ICS格式,但正常的Outlook处理它就好了。

这是我们发送的ICS。有人知道我们可以更改哪些内容,以便为Gmail用户和非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:[email protected] 
LOCATION:Financial CRM Application 
ATTENDEE:MAILTO:[email protected] 
SUMMARY:CRM Task #128 
END:VEVENT 
END:VCALENDAR 

我很感谢您的建议。

回答

1

我发现将ICS作为多部分MIME消息发送似乎适用于Gmail和Exchange。下面是一些相关的Java代码(“日历”的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); 
0

我知道是前一段时间,但你可以通过注册表解决这个弄不好这里找到:

http://support.microsoft.com/kb/944094

我已经在Outlook 2010中测试了Exchange 2010上运行,这让第3当您是组织者时,第三方活动将被输入到日历中。

+2

我无法从正在生成ICS的应用程序控制用户注册表,所以这并没有真正的帮助。不过谢谢。 – Jeff

0

我发现,如果组织者设置为你,那么展望2011年的Mac将不会提供给会议添加到您的日历。从会议中删除组织者似乎工作得很好。

我还发现,如果ICS附件最后项附加到多的消息,它会被剥离。