2010-03-31 9 views
3

Quelqu'un a-t-il des informations sur l'accès au serveur Lotus Domino pour extraire tout le contenu du courrier par des requêtes http du (ou des) serveur PHP de Linux?Comment récupérer le corps du message et les pièces jointes au format XML en utilisant php/linux du serveur Lotus Domino?

Le article par Andrei Kouvchinnikov décrit bien comment chercher la liste de messages dans les dossiers de courrier de notes; après avoir obtenu l'ID de la session lors de la connexion on peut par exemple sélectionner les 100 meilleurs messages en appelant:

https://your.server.domain/mail_db/mailbox.nsf/($Inbox)?ReadViewEntries&Start=1&Count=100 

Et cela fonctionne parfaitement. Le problème se pose quand je suis en train d'obtenir le contenu du message (0A1DA5EEB7B65277C12576F50055D811 est un exemple de message Id unique):

https://your.server.domain/mail_db/mailbox.nsf/($Inbox)/0A1DA5EEB7B65277C12576F50055D811/?OpenDocument 

Cette demande dans IE montre frameset avec des données difficiles à analyser, dans les navigateurs moins courants comme Opera il informe au sujet non pris en charge navigateur. Idéalement, s'il est possible d'extraire les notes du contenu du message et toutes les pièces jointes en le demandant dans l'url, quelqu'un a-t-il des informations sur la demande? Lien vers la référence des appels Web Lotus serait encore plus bénéfique.

Répondre

1

Voici la liste des URL Domino Commandes: http://www.ibm.com/developerworks/lotus/library/ls-Domino_URL_cheat_sheet/

Vous pouvez obtenir les données de la boîte de réception de retour sous forme d'URL en utilisant la commande ReadViewEntries. Malheureusement, il n'y en a pas un pour lire des documents en XML. Une astuce consiste à créer une copie du formulaire Courrier dans la base de données de messagerie Notes (ou un modèle utilisé par toutes les bases de données de messagerie) et à le configurer pour la sortie XML pour tous les champs de courrier. Vous devrez ensuite définir le formulaire en tant que Web uniquement et renommer ou masquer tous les autres avec le même nom qui sont définis pour apparaître sur le Web. Ensuite, Notes utilisera votre formulaire pour créer des réponses aux clients Web. Notez que vous devrez également apporter des modifications au modèle pour désactiver l'utilisation des jeux de cadres pour les clients Web. Malheureusement, ces modifications peuvent interrompre l'utilisation de Domino Web Access, si vous utilisez ce système pour accéder aux e-mails via le Web.

2

Les messages électroniques ne sont pas au format XML. Ils sont MIME ou RichText. Donc, quand vous les voulez en XML, vous avez besoin de quelque chose pour le convertir en premier. Le? ReadViewEntries XML vous donnera déjà quelques données essentielles (de temps, sous réserve) et vous pouvez utiliser

https://your.server.domain/mail_db/mailbox.nsf/($Inbox)/0A1DA5EEB7B65277C12576F50055D811/Body?OpenField 

pour obtenir la représentation HTML du corps du courrier. À part cela, je déploierais un petit agent sur le serveur Domino qui rendrait les messages dans le format dont vous avez besoin. Pour les messages MIME, vous voulez probablement le format MIME d'origine et pour RichText la conversion MIME de celui-ci.

1

La réponse définitive à ce problème n'est pas documentée dans la spécification d'URL Lotus, je vais donc la partager ici. Pour récupérer le message entier avec les en-têtes et les pièces jointes seul message Lotus UID est nécessaire, l'URL est:

https://your.server.domain/mail_db/mailbox.nsf/($Inbox)/ca59f0649511e091c12576ce005af21d/?OpenDocument&Form=l_MailMessageHeader&PresetFields=FullMessage;1 

où ca59f0649511e091c12576ce005af21d est par exemple UID du message. J'espère que quelqu'un trouvera cette information utile.