# Courtail

Interface WEB d'administration pour le serveur de courriel *Postfix* dont la documentation est disponible sur [doc.ycharbi.fr](https://doc.ycharbi.fr/index.php/Serveur_de_courriels).

## Fonctionnalités

L'objectif de Courtail est de permettre le paramétrage de certaines fonctionnalités de messagerie tel que :

* ajout, activation/désactivation, suppression des alias virtuels
* ajout, activation/désactivation, suppression des domaines
* ajout, activation/désactivation, suppression des adresses en liste noire
* ajout, activation/désactivation, suppression, changement de préfixe, changement de mot de passe, changement de privilège des utilisateurs
* exportation/importation des alias virtuels d'un utilisateur
* exportation/importation des données (à la carte) du site

Deux types d'utilisateurs sont supportés et ont un accès différent à ces fonctionnalités :

* Administrateur : à accès à la totalité des fonctions du site et peut se faire passer momentanément pour un autre utilisateur afin de modifier ses paramètres sans avoir à s'y connecter
* Utilisateur : n'a accès qu'à ses propres alias virtuels. Il peux en créer, les activer/désactiver, les supprimer, les sauvegarder et les restaurer. Il ne peut également modifier que son propre mot de passe en fournissant son actuel

## Dépendances du projet

Pour Debian 11 (Bullseye) :

`apt install --no-install-recommends apache2 php php-sqlite3`

## Environnement de développement

L'outil est déployable rapidement dans un environnement de test ou via Docker.

Un schéma logique de celui-ci est disponible [ici](outils/schémas/Courtail-schéma.pdf).

### Via Docker

Après avoir dupliqué le projet, réaliser les commandes suivantes :

`bash ./outils/rundocker.sh`

La page WEB est disponible sur [http://127.0.0.1:8080](http://127.0.0.1:8080) et [https://127.0.0.1:4443](http://127.0.0.1:8080).

#### Utilisateurs par défaut

Plusieurs utilisateurs sont créés dans notre exemple :

|Utilisateurs   |Mot de passe|Rôle          |
|---------------|------------|--------------|
|demo@exemple.fr|demo        |Administrateur|
|toto@exemple.fr|toto        |Administrateur|
|tata@tata.fr	|tata        |Utilisateur   |

*La définition d'un domaine par défaut dans la section dédiée du site permet l'usage d'identifiants courts (demo = demo@exemple.fr).*

## Galeries

![Page de connexion](outils/galerie/courtail-galerie-1.png)

![Page gestion des alias virtuels](outils/galerie/courtail-galerie-2.png)

![Page gestion des domaines](outils/galerie/courtail-galerie-3.png)

![Page liste noire des destinataires](outils/galerie/courtail-galerie-4.png)

![Page liste noire des expéditeurs](outils/galerie/courtail-galerie-5.png)

![Page des paramètres](outils/galerie/courtail-galerie-6.png)

![Page des paramètres](outils/galerie/courtail-galerie-7.png)
