Gestionnaire d'alias d'emails

— Temps de lecture: 3 minutes

L’idée #

Trop de spam ? Marre de donner son addresse email à chaque service ? Les alias mail sont là à la rescousse !

Suite à une idée d’Adrien Chinour, j’ai décidé de créer à mon tour un petit gestionnaire d’alias pour mes adresses emails. L’objectif est de pouvoir générer rapidement des alias afin de ne pas donner sa véritable adresse email lors d’inscription sur des sites divers. Ainsi, si l’on constate que le site envoie un peu trop de mail à notre goût, que l’on utilise plus le service, ou que réussir à se désinscrire relève du parcours du combattant, on supprime l’alias, et plus de mail indésirables !

Ayant mes domaines gérés par Gandi, j’ai regardé comment interagir avec mes adresses emails pour créer des alias depuis leur API.

Au niveau des technologies utilisées, j’ai utilisé Angular et les fonctions serverless de Netlify (en NodeJS) afin de gérer les appels à l’API Gandi.

Le principe est très simple: on s’authentifie avec un mot de passe, prédéfini dans les variables d’environnements des fonctions serverless de Netlify, on obtient un JWT Token signé avec un secret connu seulement par les fonctions serverless, et on peut ensuite considéré que l’on est authentifié. N’ayant pas besoin de gérer plusieurs utilisateurs, cela convient à mon cas d’utilisation.

Une fois authentifé, les fonctions serverless se chargent de récupérer la liste des domaines, ainsi que la listes des boites mails associées à ces domaines et on arrive ensuite sur l’écran suivant, qui nous permet de gérer les alias de chaque boite mail.

Rendu bureau

La suite #

Dans le cas ou d’éventuels clients de Gandi souhaiteraient utiliser ce projet, j’ai tenté d’intégrer l’Oauth2, afin de permettre de s’authentifier via Gandi. Cela m’a également permis de comprendre mieux le fonctionnement de l’Oauth2.

J’ai donc demandé la création d’une application, obtenant ainsi un applicationId et un applicationSecret me permettant de mettre en place l’authentification. Afin de tester cela en local, j’ai utilisé un mock oauth2 réalisé par le groupe AXA

Malheureusement, l’API v5 de Gandi est encore en beta et le fournisseur d’authentification ne permet pas encore d’interagir avec les domaines et boites mails. 😢

En attendant que cela soit disponible, j’ai laissé mon travail disponible sur une branche dédiée.

J’ai également ajouté un bouton de déploiement Netlify en un clic pour ceux souhaitant se servir de ce petit projet. Il faudra néanmoins générer sa propre clé d’API depuis les paramètres de son compte Gandi et renseigner quelques variables d’environnement, décrite ci-dessous.

Paramètre Description
GANDI_API_KEY Clé d’API Gandi
JWT_SECRET Une chaine de caractères aléatoire utilisée comme secret JWT
LOGIN_PASSWORD Le mot de passe souhaité pour se connecter
GANDI_API_HOST La racine de l’URL de l’API Gandi : api.gandi.net
GANDI_API_VERSION La version de l’API Gandi : /v5

Pour générer le JWT Secret, la commande suivante peut être utile

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

Les sources du projet sont disponibles sur Github