Canal IMAP
L'installation
Les librairies utilisées
Aucun librairie non incluse de base dans UPortal n'est utilisée.
Mais si vous souhaitez utiliser CAS il faut la
librairie CAS
Mise en place du canal
Préparation du fichier de configuration CImap.xlm.: mettre les renseignements
relatifs aux serveurs et aux attributs importants.
Préparation du déploiement : modifier le deploy.home du fichier build.properties.
Lancement la commande ant deploy.
L'administrateur peut maintenant publier les canaux dont il a besoin en fonction
des paramètres d'instanciation.
La configuration
La configuration du canal se situe à 3 niveaux :
- dans le code source : on y retrouve les constantes sur lesquelles
se base le programme.
- dans un fichier de configuration : on y retrouve la liste des serveurs
et des conditions d'attribution automatique de serveur
- à l'instanciation du canal : il est possible de spécifier plusieurs
paramètres lors de l'instanciation du canal pour le "personnaliser"
Les variables et constantes internes au canal
- _configFilePath : c'est le chemin d'accès (relatif depuis
la racine du canal) au fichier de configuration.
exemple : private final static String _configFilePath = "/properties/CImap.xml";
- _xslLocation : c'est le nom de la page SSL qui détermine
quelle feuille XSL sera utilisée.
exemple : private final static String _xslLocation = "CImap.ssl";
- _cacheDefaultTimeOut : définit le temps par défaut (en
seconde) de validité du cache, afin d'éviter de faire trop de requete répétitives
aupres du serveur imap. Cette valeur peut être modifiée selon le canal (cf
les paramètres d'instanciation).
exemple : private final static int _cacheDefaultTimeOut = 120;
- _displayDefaultMode : c'est le type d'affichage par défaut.
2 possiblités : "MODE_APERCU" ou "MODE_DETAIL" qui affichent soit uniquement
le contenu de la boîte de réception soit le contenu de tous les dossiers.
Cette valeur peut être modifiée selon le canal (cf les paramètres d'instanciation).
exemple : private final static String _displayDefaultMode = MODE_APERCU;
Le fichier de configuration
Il est nécessaire de tenir compte des logiques des différents établissements
: un seul serveur mail, un serveur pour les étudiants et un pour le personnel,
un par composante …. La configuration permettra donc de déclarer plusieurs
serveurs mail mais une instance du canal ne fera référence qu'à un seul serveur.
Détail du fichier de config :
La liste des serveurs se situe entre les tags <Servers> et </Servers>.
Chaque serveur, décrit dans les balises <Server />, possède les attrubuts
qui le caractérise :
- key : Clé (le nom logique)
- default : Défini le serveur par défaut
- hostname : Le nom complet
- port : Le port de connexion
- protocol : Le protocole de connexion
- description : Breve description du serveur, qui apparait dans le canal
- inboxName : Le nom de la boîte de réception sur le serveur
- inboxLocalName : Le nom à afficher pour la boîte de réception
- urlWebmail : L'url vers le webmail avec symbole "%m" qui sera remplacé
dynamiquement par le nom du dossier imap que l'on veut ouvrir.
La listes des attributs importants se trouve entre les tags <Attachements
/ >. Il existe 2 types d'"Attachements" :
- Group : qui détermine à quel serveur est renvoyé une personne de ce groupe
UPortal. Le groupe est caractérisé par :
- key : identifiant du groupe UPortal
- serverKey : Clé du serveur rattaché
- description : Description du groupe
- Attribut : qui associe un attribut UPortal de la personne connectée à un
serveur selon une valeur précise.
- key : Nom de l'attribut UPortal
- value : Expression régulière que doit comporter cet attribut
- serverKey : Clé du serveur rattaché
- description : Description de l'attribut
Affectation du serveur :
Il y a trois modes d'affection d'un serveur mail. Voici une présentation de
chacun d'eux par ordre de priorité :
- A l'instanciation du canal Lors de l'instanciation du canal (ajout
du canal dans son environnement), il sera possible de définir la key
du serveur mail à utiliser.
exemple : Pour ajouter un canal vers le serveur de messagerie du personnel,
il faut saisir la key de ce serveur :
- Selon un attribut Si l'utilisateur n'a pas précisé de serveur à l'instanciation,
il faut détecter le serveur qui convient. Ceci est possible grâce à des affectations
dynamiques en fonction de différents critères précisés en configuration. Ces
critères sont de deux types :
- appartenance de l'utilisateur à un groupe uPortal : en configuration
on associe un serveur mail un groupe uPortal.
- valeur d'un attribut spécifique : en configuration, on associe un serveur
mail à une valeur d'un attribut uPortal.
Ces critères sont testés les uns après les autres et dès que l'un est vérifié,
l'allocation se fait. Il est donc important de noter que l'ordre d'apparition
de ces critères dans le fichier de config donne la priorité.
- Le serveur par défaut Si aucun de ces critères ne convient, c'est
le serveur défini comme " par défaut " qui sera affecté.
Exemple de fichier de configuration
<?xml version="1.0"?>
<!DOCTYPE CanalMail SYSTEM "CImap.dtd">
<CanalMail>
<Servers>
<!--=========================================================================-->
<!--===============Serveur de messagerie du personnel de Nancy 2=============-->
<!--=========================================================================-->
<Server
key="PERS"
default="1"
hostname="mail.univ-nancy2.fr"
port="143"
protocole="imap"
description="Serveur de messagerie du personnel de Nancy 2"
inboxName="INBOX"
inboxLocalName="Réception"
urlWebmail="https://webmail.univ-nancy2.fr/imp/mailbox.php?mailbox=%m"
/>
<!--=========================================================================-->
<!--==============Serveur de messagerie des etudiants de Nancy 2=============-->
<!--=========================================================================-->
<Server
key="ETUD"
hostname="etudiant.univ-nancy2.fr"
port="143"
protocole="imap"
description="Serveur de messagerie des etudiants de Nancy 2"
inboxName="INBOX"
inboxLocalName="Réception"
urlWebmail="http://etumel.univ-nancy2.fr/imp/mailbox.php?mailbox=%m"
/>
</Servers>
<Attachements>
<Group
key="local.1"
serverKey="PERS"
description="Groupe personnel de Nancy 2"
/>
<Attribut
key="mail"
value=".*@univ-nancy2\.fr"
serverKey="PERS"
description="Personne ayant un adresse mail en @univ-nancy2.fr de Nancy 2"
/>
<Group
key="local.2"
serverKey="ETUD"
description="Groupe etudiants de Nancy 2"
/>
<Attribut
key="mail"
value=".*@etudiant\.univ-nancy2\.fr"
serverKey="ETUD"
description="Personne ayant un adresse mail en @etudiant.univ-nancy2.fr de Nancy 2"
/>
</Attachements>
</CanalMail>
Les paramètres d'instanciation
L'administrateur, lorsqu'il publie un canal, peut ajouter des
paramètres d'instanciation pour changer le comportement du canal. Ici, aucun
de ces paramètre n'est obligatoire.
- serverKey: Si ce paramètre est renseigné, il doit contenir
la clé d'un serveur (cf fichier de config). Sinon, le programme se base sur
les attributs de l'utilisateur pour affecter un serveur.
- useCasAuth : Par défaut le canal se base sur une authentification
CAS pour la connexion imap. Mais il est possible de désactiver cette authentification,
sous réserve d'une configuration d'UPortal bien adaptée (cf exemple). Le canal
se basera alors sur le login et le mot de passe de UPortal. Pour se faire,
il faut donner la valeur 'N' au paramètre useCasAuth.
- cacheTimeOut: L'administrateur peut, s'il le désire, spécifier le
nombre de seconde durant lequel le cache sera valide, afin d'éviter un trop
grand nombre de requètes imap.
- defaultDisplay: Mode d'affichage par défaut : "MODE_APERCU" ou "MODE_DETAIL".
Module d'envoi de mail
Il est possible depuis la version 2 du canal, d'avoir une interface pour envoyer
un mail depuis le canal. Pour cela, vous devez installer le canal
"mailTo". Puis au niveau du fichier de config, vous devez préciser
le nom complet de la classe de mailTo :
<?xml version="1.0"?>
<!DOCTYPE CanalMail SYSTEM "CImap.dtd">
<CanalMail classSendMail="org.esupportail.portal.channels.CMailTo.CMailToServant">
<Servers>...
Redeployez le canal imap.
A ce moment là, sur l'apercu de la boite mail un bouton est apparu :
"envoyer un mail".
Exemples d'utilisation
Ces exemples montrent les différentes applications du canal en fonction des paramètres
d'instanciation.
L'utilisateur choisi le serveur de référence
Pour laisser l'utilisateur choisir son serveur, il faut que l'administrateur
publie un canal en laisser la possibilité de saisir la valeur du paramètre "serverKey".
Par contre il n'est pas possible de proposer une liste de valeur ce type d'implémentation
s'adresse à des utilisateurs avertis. Dans la boîte de dialogue qui s'ouvre,
il peut y avoir une valeur par défaut qui, comme son nom l'indique, peut être
modifiée.
L'administrateur déclare un canal par serveur
L'administrateur peut déclarer par exemple un canal "boîte aux lettres du
personnel". Pour cela, le paramètre "serverKey" doit être rempli avec la clé
du serveur du personnel et doit être non saisissable par l'utilisateur. L'utilisateur
qui s'ajoute ce canal, sera automatiquement relié au serveur du personnel. Donc
dans la même logique, l'adminsitrateur peux publier un canal pour le serveur
étudiant, un pour le serveur du personnel.... etc.
Point de vue de l'administrateur :
Point de vue de l'utilisateur :
Une fois le canal inséré, l'utilisateur voit :
mais il peux afficher le détail et là il optient :
Si l'utilisateur veut ouvrir un dossier, il lui suffit de cliquer sur le nom
de celui-ci et une fenetre s'ouvrira dans le webmail directement dans le bon
dossier.
Création d'un canal sans authentification cas
En plus de préciser le serveur, il est possible de spécifier d'où proviennent
les informations de LOGIN / MOT DE PASSE. Par défaut elles découlent de l'authentification
CAS. Mais en ajoutant le paramètre "useCasAuth", non saisissable par l'utilisateur
et avec la valeur "N", ce sera les LOGIN ET MOT DE PASSE de connexion à UPortal
qui serviront. Ceci va permettre de tester le canal avec un serveur imap non
cassifié.
Pour utiliser l'authentification LDAP et pour garder le mot de passe en cache,
il faut mettre ces lignes dans le fichier security.properties :
= te)te)tn
ierimpil fil fi .ibr>&l, il , il ,h3>TEmg srdendendon :
p>I./i./i. .>ddend>
>
< >
on a@dexdexd l'u /> : Ms urivhtml€