"Outlook inbox" depuis une page HTML 1

“Outlook inbox” depuis une page HTML

Voici une expérience : Comment lister ses emails reçu dans outlook dans une page HTML ?

Quelques pré-requis sont nécessaires:

  • Outlook doit être installé sur le poste qui demande la page html.
  • Du coté de l’IE, il faut changer les paramètres à partir des options/Sécurité/sites de confiance.
    • Il faut mettre l’adresse du site qui héberge cette page dans la liste des serveurs « de confiance »,
    • Dans la sécurité de cette zone de confiance, il faut accepter la création d’ActiveX.

Pour ma part, j’ai utilisé Outlook 2007 et l’IE9. Le serveur Web est ISS sur un 2003R2. Mais cela importe peu.

Cet exemple liste les emails qui se trouvent dans la boite « inbox » de l’outlook de celui qui lit la page HTML. C’est donc lié à la session de l’utilisateur.

Ce code simpliste permet de prouver le fonctionnement. Ensuite, je vous invite à le mettre mieux en forme et, évidement, à l’améliorer par d’autres propriétés come l’adresse de l’émetteur ou son nom .

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title></title>

</head>

<script language="jscript" type="text/jscript">

function ReadInbox(){

var mHTML;

mHTML = "";

mHTML = mHTML + "<table style="width:100%:border:0px;">";

try {

var oOA = new ActiveXObject("Outlook.Application");

//get reference to inbox

var oMAPI = oOA.GetNamespace("MAPI");// of currentUser;

var oFldrInbox = oMAPI.GetDefaultFolder(6); // 6 for default inbox, 4 Outbox

// header of table

mHTML = mHTML + "<tr><td colspan="3">";

mHTML = mHTML + "<img src="images/inbox.png" style="width:36px;height:36px;border:0px" /><span style="font-weight:bold;">" + oFldrInbox.Items.Count + " éléments dont " + oFldrInbox.UnReadItemCount + " non lus" + "</span>";

mHTML = mHTML + "</td></tr>";

// For all items in the inbox...

for (var i = 1; i<=(oFldrInbox.Items.Count); i++) {

mHTML = mHTML + "<tr>";

// for the envelope icon

mHTML = mHTML + "<td>";

if (oFldrInbox.Items(i).UnRead) {

mHTML = mHTML + "<img src="images/email.png" style="width:18px;height:18px;border:0px" />";

}

else {

mHTML = mHTML + "<img src="images/email_readed.png" style="width:18px;height:18px;border:0px" />";

}

// add attachement icon

mHTML = mHTML + "<td>";

if (oFldrInbox.Items(i).Attachments.Count>0) {

mHTML = mHTML + "<img src="images/attachment.png" style="width:18px;height:18px;border:0px" />";

}

else {

mHTML = mHTML + "&nbsp;";

}

mHTML = mHTML + "</td>";

// add the subject

mHTML = mHTML + "<td>";

mHTML = mHTML + oFldrInbox.Items(i).Subject;

mHTML = mHTML + "</td>";

// close the line

mHTML = mHTML + "</tr>";

}

}

catch (e) {

alert ("erreur "+e.message);

}

//close all object

oFldrInbox = null;

oMAPI = null;

oOA = null;

//Puts results in the page

mHTML = mHTML + "</table>";

oInbox.innerHTML = mHTML;

}

</script>

<body onload="ReadInbox();" >

<div style="width:100%;height:100%;font-family:Arial;font-size:small" id="oInbox"><img src="images/wait.gif" /></div>

</body>

</html>
  • En premier cette page HTML, charge le « body » et appelle la fonction « ReadInbox ».
  • Cette fonction va construire dans une chaine mHTML le code qui sera mis dans une <div> de la page. Cette <div> est définie en 100% de son contenant mais ce n’est bien entendu pas obligatoire.
  • On construit une table qui recevra pour chaque ligne un élément de « l’inbox » de Outlook.
  • L’objet « oOA » reçoit l’objet ActiveX. Si ça coince ici à l’exécution, c’est soit les paramètres de votre explorateur qui empêchent la création d’ActiveX, soit vous n’avez pas Outlook installé sur le poste.
  • L’objet « oMAPI » nous permet de nous connecter à la messagerie de Outlook et « oFldrInbox » d’aller à la boite de réception ; 6 pour « l’inbox », 4 pour « outbox ».
  • Ensuite, c’est facile, boucle dans chaque email et construction des éléments. Les images sont là pour avoir un résultat plus sympa, et vous trouverez d’innombrables choix depuis internet.
  • La propriété « Unread » permet de savoir s’il a été lu.
  • « Attachments.Count » permet de connaitre le nombre de pièces jointes.
  • « Subject » pour reprendre le sujet du message.

Pour les autres propriétés, notons :

  • « SenderName » pour le nom de l’expéditeur,
  • « SenderEmailAddress » pour l’adresse email de l’expéditeur,
  • « Importance » pour le niveau d’importance du message,
  • « body » pour le contenu du message,

Utilisez la méthode « SaveAsFile » de l’objet Attachement.item(n) si vous voulez enregistrer les pièces jointes.

Bon code.

A propos Martial Auroy

Mon goût pour les défis et pour la création m’ont amené à la direction de trois services informatiques. Dans le domaine industriel, dans la gestion de production, dans les ressources humaines et la paie. Créatif et Ingénieur de formation, j’ai pu développer et mettre en place des systèmes informatiques divers. Gestion de paies internationale, appareils de mesure dans les ateliers de l’aérospatiale ou des robots pour la fabrication de cosmétiques. Le Web m’est bien connu. La sécurité et la communication ont toujours été parties intégrantes des projets mis en place : Sécurité d’intrusion, d’accès et de traçabilité. Je suis curieux et toujours à la recherche de connaissance. J’aime le cinéma, la philosophie, voyager.

Je vous propose également...

Supprimer une boite partagée avec outlook 2010 ou 2013 (environnement Exchange) 2

Supprimer une boite partagée avec outlook 2010 ou 2013 (environnement Exchange)

Après avoir fait une délégation de boîte aux lettres sur le serveur Exchange avec Accès …

Publier signature Outlook avec les informations AD (suite) 3

Publier signature Outlook avec les informations AD (suite)

Vous avez été nombreux à visiter la page "Signature Outlook avec informations de l'AD" de synergeek. Cet article était basé sur le script original du site Nalex. Avec le passage à Office 2013, et à Windows 8 ou 8.1, il y a eu besoin d'apporter quelques modifications au script que j'avais publié comme aux modèles de signatures.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *