Retour au blog

Installation d'un client Webmail avec Roundcube sur Ubuntu 20.04 : Un tutoriel

Installation d'un client Webmail avec Roundcube sur Ubuntu 20.04 : Un tutoriel

Roundcube est un client de messagerie open-source basé sur le protocole IMAP et accessible via un navigateur. Il a gagné en popularité pour sa prise en charge des ACL et l'utilisation de la technologie AJAX (Asynchronous JavaScript and XML). Il dispose d'excellentes fonctionnalités et de capacités de bout en bout telles que la gestion des e-mails, MIME support, et la manipulation de dossiers, pour n'en citer que quelques-unes. De plus, Roundcube offre une recherche de messages, un correcteur orthographique, des calendriers et une gestion des contacts de manière transparente. Surtout, il dispose d'un dépôt de plugins robuste et d'options de personnalisation supplémentaires par rapport aux autres clients populaires basés sur un navigateur.

Roundcube est un MUA. Contrairement à un MTA, vous aurez besoin d'un service qui gère vos e-mails, de préférence en utilisant votre propre serveur de messagerie. Consultez notre tutoriel de configuration de serveur de messagerie pour ajouter le serveur de messagerie de votre choix.

Lorsque vous envoyez un e-mail, le MUA le transfère à son serveur MTA via SMTP. Après quelques sauts, le MTA de réception reçoit l'e-mail et le transfère à son MDA via IMAP. Enfin, le destinataire consulte l'e-mail à l'aide du MUA.

Comprenons ces termes :

  • MUA : Un agent utilisateur de messagerie (Mail User Agent) est une interface qui permet à l'utilisateur d'interagir pour consulter et envoyer des e-mails.
  • MTA : Un agent de transfert de messagerie (Mail Transfer Agent) transfère les e-mails de l'expéditeur au destinataire.
  • SMTP : Le Simple Mail Transfer Protocol est un protocole que le MUA utilise pour envoyer des e-mails au MTA.
  • MDA : Tous les e-mails envoyés depuis le MTA sont reçus et stockés au niveau de l'agent de distribution de courrier (Mail Delivery Agent).
  • IMAP : L'Internet Message Access Protocol est un protocole que les MDA utilisent pour distribuer le courrier au MUA.

Dans ce tutoriel, nous allons vous guider à travers les étapes d'installation d'un client webmail avec Roundcube sur Ubuntu 20.04.

Commençons !

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de ce qui suit :

Étape 1 : Installer les extensions et les dépendances

Avant de commencer, mettons à jour les dépôts pour éviter les conflits logiciels :

Ensuite, nous allons installer les dépendances de Roundcube et configurer PHP. Utilisez la commande suivante pour installer les extensions et bibliothèques PHP :

Par défaut, quelques-unes des bibliothèques PHP sont désactivées. Nous devons activer ces bibliothèques en naviguant vers le fichier php.ini du serveur situé à /etc/php/7.0/apache2/php.ini. Ouvrez le fichier php.ini à l'aide de l'éditeur de texte nano :

Contrairement aux options de commentaire les plus couramment utilisées commençant par un dièse ( #), nous utilisons un point-virgule ( ;) pour commenter et décommenter des lignes. Ajoutez un point-virgule au début pour commenter une ligne. De même, supprimez un point-virgule pour décommenter une ligne.

Regardons la section contenant les lignes commentées commençant par extension=. Supprimez les points-virgules pour décommenter les extensions php_mbstring.dll et php_xmlrpc.dll :

De plus, ajoutez l' extension=dom.so tout en bas du bloc d'extensions :

  • Modifier les fichiers :
    • Modifiez le date.timezone:

Allez dans l'option des paramètres, naviguez vers date.timezone, et décommentez-le. Ensuite, ajoutez votre fuseau horaire en utilisant des guillemets. Consultez la page des fuseaux horaires de PHP pour voir à quoi ressemble le fuseau horaire formaté dans le fichier php.ini . Par exemple, si vous êtes en Europe, votre fichier ressemblera à ceci :

    • Modifiez le upload_max_filesize fichier :

Ensuite, naviguez vers le paramètre upload_max_filesize . Par défaut, vous verrez la limite maximale fixée à 2 Mo. Selon vos besoins, vous pouvez augmenter la taille maximale des fichiers autant que vous le souhaitez. Cependant, la plupart des serveurs de messagerie limitent la taille totale des pièces jointes à 10 Mo. Dans ce guide, nous allons maintenir la taille maximale à 13 Mo afin que plusieurs utilisateurs puissent ajouter des pièces jointes en même temps :

    • Modifiez le post_max_size fichier :

Maintenant, recherchez post_max_size. Contrairement au paramètre upload_max_filesize qui s'applique aux pièces jointes, post_max_size s'applique à la taille de l'ensemble de l'e-mail (y compris les pièces jointes). Définissons notre post_max_size à une valeur plus élevée pour éviter les blocages :

    • Définissez la valeur func_overload :

Enfin, recherchez mbstring.func_overload = 0 et décommentez-le. Assurez-vous également que sa valeur est définie sur null afin qu'il prenne en charge les fonctions de chaînes multi-octets :

Enregistrez toutes les modifications puis fermez le fichier. Notre serveur est configuré avec la pile LAMP, les dépendances de Roundcube et la configuration PHP requise. Dans l'étape suivante, nous allons télécharger le logiciel Roundcube, l'installer et le configurer.

Étape 2 : Télécharger Roundcube

Allez sur la page de téléchargement de Roundcube, choisissez la version stable et recherchez le package complet. Ensuite, faites un clic droit sur le bouton Télécharger et sélectionnez Copier l'adresse du lien. En utilisant l'adresse avec wget, téléchargez l'archive tarball de Roundcube sur le serveur :

Après cela, vous devrez décompresser l'archive Roundcube :

Les arguments utilisés peuvent sembler déroutants, surtout si vous êtes complètement débutant. Voici une explication de la signification de chaque option :

  • x : Signifie extraire (extract).
  • v : Signifie verbeux (verbose).
    • Indique à tar d'afficher le chemin et le nom des fichiers extraits.
  • z : Indique à tar de retirer l'enveloppe tar et de décompresser l'archive à l'aide de gzip.
    • L'extension du fichier gzip compressé aura .gz à la fin.
  • f : Signifie fichier (file).

Omettez le caractère de fin / dans le répertoire car nous déplaçons et renommons l'ensemble du répertoire, et pas seulement son contenu. Maintenant, déplaçons le répertoire décompressé vers /var/www et renommons-le en roundcube:

Définissez les autorisations pour qu'Apache puisse créer et modifier les fichiers de configuration et de journalisation. Ensuite, modifiez le propriétaire et le groupe pour www-data. Assurez-vous également d'autoriser les permissions de lecture et d'écriture pour le propriétaire et le groupe :

Bien que nous ayons téléchargé le code de Roundcube et défini les autorisations nécessaires, notre installation est encore incomplète. La connexion de Roundcube à notre base de données via l'interface graphique de Roundcube reste à faire. Avant de poursuivre, nous devons mettre à jour Apache et sa configuration pour lui indiquer l'emplacement de base de Roundcube.

Étape 3 : Configuration et installation d'Apache

Dans cette étape, nous allons modifier le fichier d'hôte virtuel pour configurer Apache. En utilisant l'hébergement virtuel Apache, nous hébergerons plusieurs sites sur un seul serveur. Même si Apache n'héberge qu'un seul site, il est plus propre et plus simple d'utiliser un fichier de configuration d'hôte virtuel plutôt que de modifier la configuration globale d'Apache. Pour ajouter une couche de sécurité supplémentaire, envisagez de sécuriser Apache avec Let’s Encrypt.

Chaque .conf fichier dans le dossier /etc/apache2/sites-available/ représente un site différent. Créons ici un fichier d'hôte virtuel pour Roundcube et informons Apache de le rendre disponible pour le navigateur.

Tout d'abord, copiez le fichier de configuration par défaut pour l'utiliser comme point de départ pour le nouveau fichier :

Ouvrez le fichier à l'aide de l'éditeur de texte nano :

Il y a plusieurs modifications à apporter. Passons-les en revue, puis nous fournirons l'intégralité du fichier à copier et coller.

Tout d'abord, modifiez les directives suivantes dans l'hôte VirtualBlock existant :

  • ServerName : indique à Apache de choisir le domaine.
    • Si vous utilisez un seul serveur, alors ce ServerName sera l'adresse IP ou le nom de domaine de votre serveur.
  • DocumentRoot : lorsque le trafic arrive, il définit vers où le diriger.
    • Dans notre tutoriel, nous enverrons le trafic vers Roundcube à l'adresse /var/www/roundcube.
  • ServerAdmin : en cas de problème avec Apache, ServerAdmin spécifie une adresse e-mail de contact.
  • ErrorLog et CustomLog : définit où enregistrer les journaux de connexion réussie et les journaux d'erreur pour ce site.
    • Utilisez des noms spécifiques pour définir les journaux d'erreurs afin que tout problème propre au site soit détecté sans effort.

Ensuite, vous ajouterez un nouveau bloc Directory qui indique à Apache quoi faire avec le répertoire Roundcube. Le bloc Directory se compose de deux mots, où le premier mot de chaque ligne est le nom de la configuration, suivi des options de configuration réelles.

  • Options -Indexes : indique à Apache d'afficher un avertissement s'il constate qu'un fichier index.html ou index.php est manquant. Par défaut, il affiche le contenu du répertoire.
  • AllowOverride All : indique à Apache que si un fichier local .htaccess est détecté, il doit remplacer les paramètres globaux.
  • Order allow,deny : demande à Apache de vérifier l'accès du client au site et de refuser ceux qui ne correspondent pas.
  • allow from all : définit le type de clients autorisés.

Une fois ces modifications effectuées, vous verrez le fichier ainsi :

Enregistrez toutes les modifications et fermez le fichier. Maintenant, demandons à Apache d'arrêter d'héberger le site par défaut :

Après cela, nous allons demander à Apache de commencer à héberger le site Roundcube à la place. Lors de l'activation du site, n'incluez pas le .conf  car le a2ensite requiert le nom de fichier sans extension :

Ensuite, mettez sur ON le module mod_rewrite d'Apache :

Enfin, redémarrez Apache pour rendre l'installation de Roundcube accessible :

Dans la dernière étape, nous devons configurer la base de données afin que Roundcube puisse stocker et gérer ses données spécifiques à l'application.

Étape 4 : Installation et configuration de MySQL

Essayez d'accéder à votre serveur en utilisant l'adresse IP ou le nom de domaine. Vous verrez une erreur de configuration apparaître sur la page. Ici, Roundcube recherche un fichier généré lors de la configuration, mais notre configuration est incomplète. Avant de procéder à la configuration, préparons notre base de données.

  1. Connexion à MySQL : Connectons-nous au shell interactif de MySQL en utilisant le nom d'utilisateur et le mot de passe :
    Une fois que vous aurez exécuté la commande ci-dessus, il vous sera demandé de vous authentifier avec le mot de passe root que vous avez créé lors de l'installation de MySQL.
  2. Créer la base de données et l'utilisateur : Maintenant que vous êtes connecté avec succès, créons une base de données et un utilisateur de base de données. Après cela, nous accorderons à l'utilisateur les autorisations nécessaires pour exécuter des commandes sur notre nouvelle base de données.
  3. Créer la base de données : Utilisez la commande suivante pour créer une base de données appelée roundcubemail. Ensuite, fournissez les options de la base de données comme le jeu de caractères à utiliser utf8:
    MySQL offre une sécurité robuste et une protection avancée. Il définit un utilisateur par son nom et la source de la connexion. La commande ci-dessus crée un utilisateur appelé roundcube et définit l'utilisateur pour se connecter depuis localhost.
  4. Renommer la base de données : Renommons l'utilisateur et modifions notre mot de passe :
  5. Définir les autorisations : Accordez à l'utilisateur roundcube toutes les autorisations sur la base de données roundcubemail et ses tables :
    Enregistrez vos modifications et quittez le shell interactif de MySQL :

Notre prochaine étape consiste à configurer la structure de la base de données qui aide Roundcube à enregistrer toutes les informations. Roundcube est fourni avec un fichier de base de données qui configure automatiquement les données, ce qui nécessiterait des efforts considérables pour une configuration manuelle.

En utilisant la commande suivante, MySQL utilisera notre utilisateur nouvellement créé pour lire un fichier /var/www/roundcube/SQL/mysql.initial.sql. De plus, il appliquera la configuration à la base de données roundcubemail:

Maintenant, il vous sera demandé de saisir le mot de passe de l'utilisateur roundcube. La configuration de notre base de données prépare l'utilisation de Roundcube et nous permet de vérifier les bonnes autorisations. Si toutes les étapes ont été réalisées avec succès, il n'y aura aucun retour et vous reviendrez à votre invite de commande. Dans l'étape suivante, nous indiquerons à Roundcube nos paramètres de messagerie et terminerons l'installation.

Étape 5 : Installation et configurations de Roundcube

Si vous essayez d'accéder à votre installation de Roundcube maintenant, vous obtiendrez une page d'erreur. Visitez http://your_server_ip_or_domain/installer pour terminer l'installation.

Si la configuration est effectuée correctement, vous verrez s'afficher en vert OK à droite de chaque élément de ligne. Cependant, vous ne verrez peut-être pas le OK vert dans les paramètres LDAP facultatifs de MySQL. Si vous voyez le message NON DISPONIBLE à côté de toute autre ligne, vous devez installer ces dépendances indisponibles. Si vous avez manqué le téléchargement de l'une des dépendances, vous pouvez naviguer vers l'URL et la télécharger immédiatement.

Une fois la configuration terminée, faites défiler vers le bas et cliquez sur le bouton SUIVANT. Voyons comment générer le fichier de configuration de Roundcube. Examinez les parties du formulaire que nous devons modifier.

  • Configuration générale

Il y a quelques personnalisations et certains paramètres généraux que nous allons modifier dans la section de configuration générale :

  • ip_check : Il s'agit d'une option de configuration de sécurité qui vérifie l'IP du client lors de l'autorisation de la session.
  • product_name : Renommez le nom du produit comme vous le souhaitez. Ce nom correspond à « Roundcube » dans le texte et est remplacé par ce nom à la place.
  • support_url : Support dans l'installation de Roundcube. Si vous n'avez pas de site d'assistance dédié, préférez utiliser une adresse e-mail comme walker:paul@demo.com.
  • skin_logo : Remplacez le logo Roundcube par skin_logo. Pour activer HTTPS, choisissez une image URL HTTPS (178px par 47px).

Laissez les autres paramètres avec leurs valeurs par défaut.

  1. Journalisation & Débogage : Utilisons les options par défaut.
  2. Configuration de la base de données : Au lieu d'utiliser explicitement votre messagerie, Roundcube utilise MySQL pour stocker les informations nécessaires au fonctionnement du client web. Ici, nous devons indiquer à Roundcube d'accéder à la base de données que nous avons configurée à l' Étape 4. Utilisez les identifiants de base de données que nous avons créés précédemment :
    • Base de données : MySQL
    • Serveur : localhost
    • Nom de la base de données : roundcubemail
    • Utilisateur : roundcube
    • Mot de passe : demo12345@
      • Utilisez le mot de passe que vous avez défini et que nous avons configuré à l' Étape 4.
    • Db_prefix : Ceci est facultatif, sauf si vous utilisez une base de données partagée avec d'autres applications.
  3. Modification de l'IMAP : Définissons les paramètres IMAP et SMTP pour votre serveur de messagerie. Comme ce tutoriel se concentre sur l'utilisation de Gmail à titre d'exemple, nous utiliserons les paramètres de Gmail dans nos paramètres IMAP. Cependant, si vous choisissez d'opter pour d'autres fournisseurs de services comme Yahoo ou Outlook, vous devez utiliser leurs paramètres respectifs. De nombreux fournisseurs de messagerie prennent en charge les connexions avec ou sans chiffrement. Normalisez l'utilisation des URL et des ports IMAP/SMTP SSL pour éviter d'utiliser des connexions non sécurisées.
    • default_host : ssl://imap.gmail.com
    • default_port : 993
    • auto_create_user : Oui
      • Si cette case n'est pas cochée, Roundcube ne créera pas d'utilisateur dans sa propre base de données et vous empêchera de vous connecter.
    • Champs *_mbox : Conservez les valeurs par défaut.
      • Vous pourrez mettre cela à jour plus tard dans l'interface utilisateur de Roundcube.
  4. Modification du SMTP : Le serveur SMTP est une partie intégrante de la messagerie qui est utilisée pour envoyer des e-mails. Tout comme pour la section du serveur IMAP, nous utiliserons l'URL et le port SSL. Si vous manquez d'expérience dans l'utilisation des serveurs SMTP, suivez les meilleures pratiques SMTP pour en savoir plus sur ce type de serveurs. Ici, nous utilisons Gmail comme exemple :
    • champ smtp_server: ssl://smtp.gmail.com
    • champ smtp_port: 465
    • SMTP et IMAP sont deux services différents, ils ont donc tous deux besoin d'un nom d'utilisateur et d'un mot de passe. Cependant, Roundcube nous permet d'utiliser les identifiants IMAP, il n'est donc pas nécessaire de les recréer. Laissez les champs sous smtp_user/smtp_pass vides et cochez la case à côté de Utiliser le nom d'utilisateur et le mot de passe IMAP actuels pour l'authentification SMTP.
    • smtp_log: Oui
  5. Modification des paramètres d'affichage & préférences utilisateur : Utilisons les paramètres d'affichage et les préférences utilisateur par défaut. Si vous choisissez de personnaliser votre installation de Roundcube, cliquez sur le lien RFC1766 sur la page de configuration et mettez à jour le champ language manuellement.
  6. Plugins : Roundcube propose un support pour les plugins qui ajoute une sécurité supplémentaire. Les plugins sont facultatifs, mais vous pouvez en tirer parti pour faciliter votre travail. Jetons un coup d'œil à la liste des plugins les plus utilisés :
    • archive : Ce plugin fournit un bouton Archive qui fonctionne de manière similaire à Gmail.
    • emoticons : Cela permet l'utilisation d'émoticônes dans les e-mails.
    • enigma : Il facilite l'utilisation du chiffrement d'e-mails GPG.
    • filesystem_attachments: Il permet de sauvegarder temporairement les pièces jointes sur le serveur Roundcube lors de l'enregistrement d'un brouillon d'e-mail.
    • hide_blockquote: Ce plugin masque la partie citée des e-mails de réponse pour garder l'interface utilisateur propre.
    • identity_select: Il permet à l'utilisateur de sélectionner plusieurs adresses e-mail lors de la rédaction d'un e-mail.
    • markasjunk: Ce plugin permet de marquer un e-mail comme spam et de le déplacer vers le dossier Spam.
    • newmail_notifier: Vous alerte des nouveaux e-mails en utilisant le système de notification du navigateur.

Cliquez sur le bouton UPDATE CONFIG pour enregistrer vos paramètres. Dans la dernière étape, nous testerons la configuration de Roundcube pour nous assurer que tout fonctionne correctement.

Étape 6 : Tester la configuration de Roundcube

Une fois la configuration mise à jour, la page s'actualisera et une boîte d'information jaune apparaîtra en haut de la page indiquant que Le fichier de configuration a été enregistré avec succès dans le répertoire RCMAIL_CONFIG_DIR de votre installation Roundcube.

Ensuite, cliquez sur le bouton CONTINUE pour tester votre configuration. De même que pour la page de vérification des dépendances, vous verrez un marqueur vert OK sur chaque ligne, à condition qu'il n'y ait pas d'erreurs. Si vous voyez des erreurs, revenez en arrière et vérifiez à nouveau vos saisies.

Saisissez votre nom d'utilisateur et votre mot de passe IMAP et SMTP dans les sections Test SMTP config et Test IMAP config respectivement pour tester le reste de la configuration. De même, cliquez sur Send test email et Check login. Si vous avez suivi correctement toutes les étapes, la page s'actualisera et vous verrez le OK vert sous la section testée.

Note : Si vous utilisez Gmail avec la validation en deux étapes activée, pensez à générer un mot de passe d'application, car Roundcube ne sait pas comment vous demander votre jeton de validation en deux étapes. Suivez la même procédure de génération de mot de passe si vous utilisez d'autres alternatives de serveur de messagerie comme Yahoo ou Outlook.

Une fois que vous avez vérifié que les connexions SMTP et IMAP fonctionnent correctement, l'étape suivante consiste à supprimer le répertoire de l'installateur à l'aide de SSH. La suppression du répertoire de l'installateur est un moyen sûr d'empêcher d'autres personnes de générer une nouvelle configuration et d'écraser les paramètres corrects :

Enfin, vous pouvez vous rendre sur l'instance Roundcube en utilisant l'adresse IP de votre serveur et vérifier votre e-mail.

Conclusion

Dans ce tutoriel, nous avons appris à installer un client webmail en utilisant Roundcube sur Ubuntu 20.04. En plus des étapes décrites ci-dessus, il existe d'autres options de sécurité comme le support HTTPS et le chiffrement GPG que vous devez envisager d'ajouter. Prenez la responsabilité de protéger vos serveurs en utilisant des mesures de sécurité robustes.

De plus, il existe de nombreux autres supports d'apprentissage sur Redis et PHP auxquels vous pouvez accéder depuis nos blogs:

Bonne informatique !

author

Pranay Kapgate

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.