2011-09-28 4 views
3

J'envoie une invitation à une réunion sous forme de courrier électronique avec une pièce jointe ICS provenant d'une application Web Java. Tout fonctionne correctement lorsque je l'envoie aux utilisateurs Outlook qui n'utilisent pas un serveur Exchange. Ils obtiennent les boutons Accepter/Rejeter appropriés et peuvent ajouter la réunion à leur calendrier. Cependant, cela ne fonctionne pas pour les utilisateurs qui se trouvent sur un serveur Exchange. Ils reçoivent une invitation à la réunion, mais ils se présentent comme organisateurs de la réunion et ils ne peuvent pas modifier les détails de la réunion. Ils ne peuvent pas accepter ou rejeter et ne peuvent pas l'ajouter à leur calendrier.La pièce jointe de courrier électronique ICS ne fonctionne pas pour les utilisateurs Exchange

Il est presque comme Exchange est en train de modifier ou n'aime pas le format de l'ICS que nous envoyons, mais Outlook normal le gère très bien.

Voici le SCI que nous envoyons. Est-ce que quelqu'un sait ce que nous pouvons changer pour que cela fonctionne pour les utilisateurs Exchange, en plus de Gmail et des utilisateurs Outlook non-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 

J'apprécie vos suggestions.

Répondre

1

J'ai compris que l'envoi de l'ICS en tant que message MIME en plusieurs parties semble fonctionner avec Gmail et Exchange. Voici le code Java correspondant (« calendrier » est la chaîne 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

Je sais que le est d'un certain temps il y a, mais vous pouvez résoudre ce avec le correctif de registre trouvé ici:

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

J'ai testé avec Outlook 2010 en cours d'exécution sur Exchange 2010 et cela a permis 3 événements de fête à entrer dans le calendrier lorsque vous êtes l'organisateur.

+2

Je ne peux pas contrôler le registre des utilisateurs de mon application qui génère l'ICS, donc cela ne m'aide pas vraiment. Merci quand même. – Jeff

0

J'ai trouvé que si l'organisateur est réglé sur vous, Outlook 2011 sur Mac ne proposera pas d'ajouter la réunion à votre Calendrier. Supprimer l'organisateur de la réunion semble fonctionner correctement.

J'ai aussi constaté que si la pièce jointe ICS est pas la dernière élément attaché à un message multipart, il sera dépouillé.

Questions connexes