L’aventure Raspberry PI – épisode 7 – Mes emails… sans google… ?

Voilà, j’ai mes raspberry Pi, ils tournent en production pour une des applications  que j’utilise le plus, à savoir le lecteur de flux. Que faire maintenant… Mes e-mails ? Roh bah… C’est critique les e-mails non ?

La réflexion

J’ai mis longtemps à me décider. Héberger des e-mails et les rendre disponibles par un webmail et par imap, c’est assez simple. Par contre, pour ce qui est de la partie serveur mail elle-même… La configuration est compliquée. Et quid de la disponibilité ? Je ne peux pas me permettre de louper des e-mails. Or je sais que mes Raspberry Pi sont dépendants de plein de chose : est-ce que j’ai internet et de l’électricité à la maison ? Est-ce que je n’ai pas fait une fausse manipulation ? Je n’ai aujourd’hui que des serveurs de production et des sauvegardes. Pas de serveur de test.

La première idée qui m’est venue a donc été d’utiliser le serveur de mail en place proposé par OVH sur mon mutualisé et de poper les e-mails au fur et à mesure vers mon serveur et de brancher là dessus un webmail à moi.

Oui, mais ce n’est quand même pas très satisfaisant, pour moi qui aime tout maîtriser ! Et c’est en me renseignant sur la gestion DNS des serveurs de mails que j’ai appris qu’il existait des possibilités de serveur de secours. La définition dans la zone DNS se fait au moyen d’une règle MX qui prend un paramètre numérique en plus de la destination. Magnifique ! L’idée est là.

Le plan

Aujourd’hui j’ai une adresse e-mail florck.nessayepasdemecrireacetteadresse@floth.fr hébergée chez OVH. Voici le plan :

Je définis comme serveur prioritaire le serveur que j’héberge moi. Et comme serveur secondaire celui d’OVH. Chacun d’entre eux a un utilisateur florck.nessayepasdemecrireacetteadresse@floth.fr . Tant que mon serveur à moi fonctionne, c’est lui qui reçoit les e-mails. Le jour où mon serveur est en rade, c’est le serveur OVH qui reçoit mes e-mails et je peux les consulter en me connectant à ce serveur.

La robustesse ici est qu’aucun mail ne devrait être perdu. La faiblesse est que si je continue à recevoir les nouveaux e-mails, par contre je ne peux pas consulter les anciens tant que mon serveur est en panne. Mais c’est un mode dégradé qui me convient.

À terme, il faudrait aussi prévoir un système qui fetcherait les e-mails reçus sur le serveur OVH vers le serveur auto-hébergé. Mais en pratique je ne l’ai jamais réalisé car les rares mails reçus en cas de panne de mon serveur sont des mails pseudo-spams (pubs et autre).

Le choix du webmail

J’ai fait le tour de tous les webmails proposés par OVH sur son service, et aussi des différents webmails que je connaissais ou que j’ai rencontré sur internet. Un seul vraiment libre a su retenir mon attention car il ne remplit que la tâche de webmail et pas d’autres activités autres telles que serveur de contacts ou d’agenda. C’est roundcube. Solution toujours en évolution, l’interface est simple, pas trop lourde même pour un raspberry pi et la configuration n’est pas trop complexe.

L’installation des serveurs

En revanche, ce qui est complexe et m’a fait dire des gros mots, c’est la configuration du serveur web. Il faut dire qu’au début je n’y connaissais rien. En compilant plusieurs tutoriels, il m’a fallu plus de 18 heures en continu la première fois pour pouvoir recevoir mon premier mail. La deuxième fois (quand j’ai supprimé par erreur un fichier de configuration qui n’était pas sauvegardé… Wala le boloss…) seules 6 heures ont suffi et maintenant je suis capable de réinstaller en une paire d’heure un système fonctionnel complet.

Un serveur mail est composé de plusieurs éléments, un MTA (mail transport agent) qui est la partie qui communique avec les autres serveurs de mails (google, ovh ou autre). On notera parmi eux l’existence de postfix, d’exim, de sendmail et de courier. L’élément suivant est le MDA (mail delivery agent ou local delivery agent) qui se charge du prétraitement du mail (règles de filtrage, test de spam) et de la livraison en local (le stockage dans les dossiers et la base de donnée). Les autres éléments sont notamment les outils permettant l’interrogation par les protocoles standards (pop, imap, smtp).

Vu que c’est ce pour lequel j’ai trouvé le plus de documentation, mon choix c’est tourné vers postfix. Postfix est conçu pour réaliser à la fois les tâches de MTA et de MDA (mais juste la livraison, pas de prétraitement à ma connaissance). Ne sachant pas trop où aller j’ai donc installé postfix réalisant le MTA et le MDA et j’y ai adossé un dovecot pour l’interrogation IMAP.

Oui mais oui mais non ! Je me suis rendu compte assez vite que Dovecot est un puissant MDA et qu’il intègre SIEVE comme outil de filtrage mail par l’intermédiaire d’un module nommé pigeonhole. J’ai donc changé ma configuration pour que Postfix n’assure que la partie MTA et laisse à dovecot le rôle de MDA.

J’ai aussi ajouté spamassassin comme outil de gestion du spam. Mais j’ai beaucoup eu de mal. Spamassassin est très gourmand en ressources et j’ai du le désactiver des raspberry pi qui n’arrivaient pas à supporter la charge. Cela dit, je ne reçois pas de vrai spam, donc ça n’a pas été trop gênant.

Envoyer des e-mails

Pour l’envoi des e-mails, il y a deux façons de faire : utiliser son serveur MTA comme serveur d’émission ou bien l’utiliser comme passerelle vers un autre serveur SMTP. La première paraîtrait la plus logique, mais malheureusement aujourd’hui le risque qu’un mail transmis directement par le serveur personnel soit considéré comme SPAM est extrêmement élevé. Le fait de faire passerelle vers un autre serveur SMTP en revanche permet de se servir de ce serveur comme caution de la qualité du serveur de mail. C’est donc ce que j’ai fait. J’ai configuré mon serveur mail pour qu’il envoie les informations vers le SMTP d’OVH qui lui relaie mes e-mails sortants.

NB : Je prends le parti de ne pas établir tout de suite les fiches d’installation du serveur de mail. En effet, je préfère conclure l’aventure Raspberry Pi avant et vous montrer ensuite directement la configuration qui est la mienne sur mon serveur actuel. J’espère que tu ne m’en voudras pas !

Demain je vous parlerai de la fin de l’aventure Raspberry Pi… Suspense !

Merci à Framasoft pour l'outil GéGé et à Gee de prêter ses personnages.

Merci à Framasoft pour l’outil GéGé et à Gee de prêter ses personnages.

Le Geektionnerd et l'intégralité de son contenu (images et textes) sont l'oeuvre de Simon "Gee" Giraudot et diffusés sous licence Creative Commons By-Sa. Découvrez le Geektionnerd sur http://geektionnerd.net/ et en album. Gégé est une adaptation de Comic Gen de Chamb réalisée par Cyrille Largillier pour Framasoft.

Le Geektionnerd et l’intégralité de son contenu (images et textes) sont l’oeuvre de Simon « Gee » Giraudot et diffusés sous licence Creative Commons By-Sa.
Découvrez le Geektionnerd sur http://geektionnerd.net/ et en album.
Gégé est une adaptation de Comic Gen de Chamb réalisée par Cyrille Largillier pour Framasoft.

Florck

Je suis Ingénieur en Technologies de l'Information, consultant en systèmes (GNU/Linux) et bases de données (Oracle). En recherche de contrôle sur mes informations personnelles : "La route est longue mais la voie est libre !"

1 réponse

  1. xfg78 dit :

    Baaaaaave !
    Un jour je serai aussi une grande fille 🙂 … Un jour :'(
    Et merci poir toutes ces infos (je n’aurais pas pensé à la redirection vers le smtp ovh !)

Laisser un commentaire

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