2011-09-28 76 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附件最後項附加到多的消息,它會被剝離。