Sortie de la bibliothèque MAPI OpenChange 0.4

Posté par  (site web personnel) . Modéré par Pascal Terjan.
Étiquettes :
0
1
juin
2007
Microsoft
MAPI, acronyme de Messaging Application Programming Interface, est un ensemble de fonctions propriétaires développées par Microsoft et utilisées dans les communications entre Microsoft Outlook et Microsoft Exchange Server. C'est principalement grâce à ce jeu de fonctions que Microsoft Outlook peut accéder aux courriels, calendriers, tâches, notes, contacts et public folders stockés sur un serveur Exchange.

La bibliothèque MAPI d'OpenChange propose une implémentation Open Source de ce protocole et offre aux applications de bureau sous Linux le moyen de communiquer avec un serveur Exchange de la même facon que Microsoft Outlook : en utilisant les protocoles natifs d'Exchange.

Proposée dans sa version 0.4 et baptisée WARP, cette évolution corrige les limites de la version précédente (0.2 MAILOOK), offre un ensemble de nouvelles fonctionnalités liées à l'envoi et réception des courriels, rendez-vous, tâches, notes et coïncide avec la sortie du greffon OpenChange pour Evolution dans sa version TP1 (Technology Preview 1). Les développeurs y trouveront une API et des exemples permettant de :
  • recevoir/envoyer/supprimer des courriels aux utilisateurs internes et externes
  • créer/récupérer des rendez-vous dans le calendrier
  • créer/récupérer des contacts
  • créer/récupérer des tâches
  • créer/récupérer des notes
  • gérer les notifications Exchange (NEWMAIL) (code expérimental)
  • accéder à tous les répertoires de la boîte aux lettres : répertoire par défaut, défini par l'utilisateur.

Deux outils sont livrés avec la libmapi-0.4 :
  • openchangeclient permet de récupérer les courriels, rendez-vous, contacts, tâches et de les afficher sur la sortie standard. L'utilitaire permet également d'envoyer des courriels, avec ou sans pièces jointes (format UTF8, HTML), à des utilisateurs internes et externes à l'organisation Exchange, d'afficher l'arborescence de sa boîte aux lettres sur la sortie standard et de recevoir les notifications Exchange de nouveaux messages.
  • exchange2mbox permet de convertir une mailbox Exchange en fichier mbox et de mettre à jour les suppressions de courriels réalisées avec mutt/pine sur le serveur Exchange.

L'accent a également été mis sur le recensement du nombre de serveurs Exchange supportés, la résolution des problèmes de généricité du code et la gestion des accents. Grâce aux beta-testeurs utilisant la libmapi depuis sa version 0.2, nous avons été en mesure d'adapter le code et de recenser le fonctionnement correct de la bibliothèque sur les serveurs :
  • Small Business Server 2003 (US)
  • Exchange 2003 (US/FR/DE)
  • Exchange 2000 (US/FR)

En ce qui concerne les développements autour d'OpenChange, l'équipe de développement chargée du greffon OpenChange pour Evolution sort aujourd'hui la première TP (Technology Preview) et offre aux utilisateurs d'Evolution :
  • Création d'un compte OpenChange/Exchange à partir d'Evolution
  • Réception, envoi, suppression de courriels avec ou sans pièces jointes.
  • Gestion des drapeaux lu/non lu, importance
  • Affichage allégé de l'arboresence des répertoires de la boîte aux lettres
  • Sauvegarde des en-têtes emails sur le système de fichier local

Nous avons également poursuivi ou entrepris des démarches avec différents projets souhaitant utiliser la bibliothèque :
  • KDE : Brad Hards travaille à l'intégration d'OpenChange dans kdepim
  • Thunderbird/Sunbird/Lightning : nous avons pris contact avec les développeurs au travers de leur bugzilla mais n'avons pas eu de retour pour l'instant.

Enfin, un important travail sur le packaging Fedora (rpm) et Debian (deb) a également été entrepris sous l'impulsion de Jelmer Vernooij, développeur Samba. Jelmer travaille activement à l'intégration des bibliothèques Samba4 et OpenChange dans Debian (experimental) et a déjà terminé les packages pour les bibliothèques talloc (allocation mémoire), ldb (base de données) et tdb (trivial database).

Aller plus loin

  • # Quand le bonheur n'arrive jamais seul !

    Posté par  . Évalué à 3.

    Dans un même ordre d'idée , Sunbird vient juste de releaser en version candidate la 0.5 de sunbird et de lightning . Il y a du travail pour les volontaires beta testeurs ce week end .


    We need your help to verify the localizations

    We are holding a Localization test day on Friday, June 1 from 1200 UTC to 0100 UTC. Please drop into the #calendar-qa channel to help us test the localized builds and ensure that we can quickly ship the 0.5 that we have all been waiting for.

    Here's where to get your hands on the RC:

    * Lightning 0.5 RC 1
    http://releases.mozilla.org/pub/mozilla.org/calendar/lightni(...)

    * Sunbird 0.5 RC 1
    http://releases.mozilla.org/pub/mozilla.org/calendar/sunbird(...)
  • # Excellent !

    Posté par  (site web personnel) . Évalué à 4.

    Merci et bravo !

    Petite question est-il envisageable d'utiliser cette bibliothèque côté serveur pour wrapper des appels MAPI vers d'autres serveurs collaboratifs ?

    Exemple : un utilisateur veut utiliser un serveur Kolab, avec le courrielleur propriétaire Outlook, mais sans le connecteur Outlook. Un processus côté serveur pourrait recevoir par exemple l'ordre « récupérer des contacts » en MAPI, lancer l'ordre « récupérer des contacts » dans le protocole reconnu par Kolab, réorganiser les données au format MAPI et les renvoyer au courrielleur Outlook.

    Celait permettrait d'utiliser des serveurs collaboratifs libres ou open source, sans installer de connecteurs Outlook, ce qui faciliterait la percé des serveurs collaboratifs libres ou open source.
    • [^] # Re: Excellent !

      Posté par  (site web personnel) . Évalué à 3.

      Bonjour,

      Ce n'est pas l'objectif de la bibliothèque MAPI de répondre à ce besoin mais celui du message store provider d'OpenChange. La bibliothèque MAPI n'encapsule que les requêtes émises par un client et n'analyse que les réponses retournées par un serveur. Dans le cadre d'une utilisation sur un serveur c'est le mécanisme inverse qui doit être implémenté: encapsulation des réponses du serveur et analyse des requêtes clients.

      En outre, le développement d'un proxy MAPI/Protocol X ne peut être géré par une simple bibliothèque du seul fait du nombre conséquent de paramètres et de mécanismes internes à gérer. Le provider d'OpenChange chargé de cette partie sera néanmoins développé pour permettre l'utilisation de différents support de stockage via des mécanismes de couche d'abstraction. Sur le moyen-terme le développement de proxy MAPI au travers d'OpenChange devrait être possible.
  • # Outlook, exchange et solution alternative

    Posté par  . Évalué à 2.

    Cela est intéressant dans le cadre d'une entreprise qui utilise exchange, mais n'existe-t-il pas des solutions alternatives ?
    J'apprécie par exemple énormément le protocole IMAP pour le partage des courriers, ne serait-il pas envisageable de créer un module permettant de stocker les calendrier et contact sur un serveur IMAP et de permettre outlook d'intérroger de façon transparente ( comme si il contactait un serveur exchange ) ce serveur.
    On pourrait aussi imaginer un interface outlook, mysql
    Ce module pourrait se trouver sur le serveur et transformerait les requêtes de outlook en requête vers IMAP ou vers Mysql par exemple.

    Existe-t-il déjà des solutions de ce type ?
    • [^] # Re: Outlook, exchange et solution alternative

      Posté par  (site web personnel) . Évalué à 3.

      Bonjour,

      Je ne parlerai ici que pour OpenChange.

      C'est en partie un des objectifs de la première release openchange-server WARPCORE HP1 (Hacking Preview) sur laquelle nous allons commencer à travailler. Nous avons pensé le message store provider pour utiliser LDB (http://ldb.samba.org - LDAP-like embedded database) et ainsi bénéficier de mécanismes de stockage de données transparents. LDB permettant le stockage des données dans différentes bases: ldb, tdb ou MySQL, il serait donc a priori enviseagable de stocker/récupérer des données IMAP sauvegardées dans une base SQL. N'ayant pas eu le temps de réaliser des tests réels, je préfère néanmoins rester prudent et utiliser le conditionnel.
    • [^] # Re: Outlook, exchange et solution alternative

      Posté par  (site web personnel) . Évalué à 2.

      Kolab stocke le calendrier , les contacts, les notes, les tâches en IMAP, par contre, pour l'instant, son utilisation avec outlook nécessite un connecteur propriétaire.
      • [^] # Re: Outlook, exchange et solution alternative

        Posté par  . Évalué à 1.

        En revanche pour Thunderbird+Lightning il y a le connecteur libre synckolab.

        Pour le moment je crois que c'est une des rares solutions libre et multiplateforme.
  • # Bindings Java

    Posté par  (site web personnel) . Évalué à 1.

    Bonjour,

    Dans l'optique de créer une interconnexion entre un serveur Tomcat et un serveur exchange, y aurait-il des bindings Java pour Openchange ? (le but serait simplement d'accéder et de créer des rendez-vous dans la base exchange)

    Merci d'avance pour votre réponse.

    Forum Software Reviews: Comparez et testez les logiciels de forums Internet!

    • [^] # Re: Bindings Java

      Posté par  (site web personnel) . Évalué à 2.

      Bonjour,

      Cela fait parti des extensions du projet sur lesquelles nous souhaiterions réellement mettre l'accent. Nous n'avons cependant ni les ressources humaines pour prendre en charge ce développement ni eu de propositions en ce sens de la part de développeurs.

      Ci-joint l'article dans lequel nous avons initialement fait cette proposition:

      http://lwn.net/Articles/234642/

      Finally, we are really interested in providing bindings for other languages, but we have limited human resources. If people are interested in developing PHP, Python or Perl bindings, they are truly welcome!!

      Néanmoins, comme il semble y avoir une forte demande en ce sens mais peu de propositions concrètes, j'ai ajouté à la feuille de route potentielle de la biblithèque MAPI 0.6 (HOLODECK), le développement d'un subsystem bindings dans openchange avec un support préliminaire pour PERL et PHP. L'objectif serait de donner une première impulsion, de dynamiser cette axe de développement et de faciliter les contributions de développeurs en ce sens:

      http://wiki.openchange.org/index.php/Libmapi_0.6_HOLODECK

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.