Dans les articles précédents, nous avons expliqué comment configurer votre propre serveur de messagerie sur Ubuntu à partir de zéro. Ce tutoriel va vous montrer comment installer RainLoop Webmail sur Ubuntu 20.04 avec un serveur Web Apache ou Nginx. RainLoop est un client de messagerie Web simple, moderne, rapide et open source écrit en PHP.
Fonctionnalités de messagerie Web RainLoop
- Une interface Web moderne et vous permet de télécharger un thème personnalisé.
- Rapide et léger
- Compatible avec SMTP et IMAP.
- Prend en charge plusieurs comptes, ce qui signifie que vous pouvez accéder à toutes vos adresses e-mail à partir d'un seul endroit.
- Prend en charge l'authentification à deux facteurs.
- Intégration avec Facebook, Twitter, Google et Dropbox.
- Accès direct au serveur de messagerie, aucune base de données nécessaire.
- Facile à installer et à mettre à niveau (mise à niveau en un clic dans le panneau d'administration)
. Il existe deux éditions de RainLoop :
- édition communautaire publié sous la licence AGPL v3
- édition standard publié sous la licence logicielle RainLoop.
Nous utiliserons l'édition communautaire gratuite et open source dans ce didacticiel.
Étape 1 :Installez Apache, PHP7 ou Nginx, PHP7
Si vous utilisez Apache et PHP7, installez-les sur Ubuntu 20.04 avec :
sudo apt update sudo apt install apache2 php7.4 libapache2-mod-php7.4
Si vous utilisez Nginx et PHP7, installez-les avec :
sudo apt update sudo apt install nginx php7.4 php7.4-fpm
Et installez les extensions PHP suivantes requises par RainLoop.
sudo apt install php7.4-curl php7.4-xml
Étape 2 :Téléchargez et installez RainLoop Webmail sur Ubuntu 20.04
Tout d'abord, créez un répertoire pour rainloop dans le répertoire de travail actuel.
mkdir rainloop
Cd dans le répertoire et téléchargez la dernière édition de la communauté RainLoop avec les commandes suivantes :
cd rainloop curl -s http://repository.rainloop.net/installer.php | php
Une fois cela fait, déplacez ce répertoire vers /var/www/
.
cd .. sudo mv rainloop /var/www/
Définissez maintenant l'utilisateur du serveur Web (www-data
) en tant que propriétaire.
sudo chown www-data:www-data /var/www/rainloop/ -R
Étape 3 :Configurer un hôte virtuel pour RainLoop
Nous pouvons utiliser le serveur Web Apache ou Nginx.
Apache
Si vous souhaitez utiliser le serveur Web Apache, créez le fichier d'hôte virtuel avec la commande suivante :
sudo nano /etc/apache2/sites-available/rainloop.conf
Mettez le texte suivant dans le fichier. Remplacez le texte rouge par vos informations réelles.
<VirtualHost *:80> ServerName mail.example.com DocumentRoot "/var/www/rainloop/" ErrorLog "/var/log/apache2/rainloop_error_log" TransferLog "/var/log/apache2/rainloop_access_log" <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted </Directory> <Directory /var/www/rainloop/data> Require all denied </Directory> </VirtualHost>
Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.
sudo a2ensite rainloop.conf
Et rechargez Apache.
sudo systemctl reload apache2
Nginx
Si vous souhaitez utiliser le serveur Web Nginx, créez le fichier d'hôte virtuel avec la commande suivante :
sudo nano /etc/nginx/conf.d/rainloop.conf
Mettez le texte suivant dans le fichier. Remplacez mail.example.com par votre propre nom de domaine.
server { listen 80; listen [::]:80; server_name mail.example.com; root /var/www/rainloop; index index.php index.html; access_log /var/log/nginx/rainloop_access.log; error_log /var/log/nginx/rainloop_error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ ^/(.+\.php)$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ^~ /data { deny all; } }
Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.
sudo nginx -t
Si le test réussit, rechargez les configurations Nginx.
sudo systemctl reload nginx
Étape 4 :Installer le certificat TLS/SSL
Si vous souhaitez ajouter HTTPS à la messagerie Web, vous pouvez obtenir un certificat TLS/SSL gratuit auprès de Let's Encrypt CA. Commençons par installer le certbot
client.
sudo apt install certbot
Si vous utilisez Apache serveur Web, vous devez également installer le plug-in Certbot Apache.
sudo apt install python3-certbot-apache
Exécutez ensuite la commande suivante pour obtenir un certificat TLS/SSL gratuit. Remplacez le texte en rouge par votre adresse e-mail et votre nom de domaine réels.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d mail.example.com
Si vous utilisez Nginx serveur Web, vous devez installer le plug-in Certbot Nginx.
sudo apt install python3-certbot-nginx
Utilisez ensuite le plugin Nginx pour obtenir et installer le certificat en exécutant la commande suivante. Remplacez le texte en rouge par votre adresse e-mail et votre nom de domaine réels.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d mail.example.com
Vous verrez le texte suivant indiquant que vous avez réussi à obtenir un certificat TLS. Votre certificat et votre chaîne ont été enregistrés dans /etc/letsencrypt/live/mail.example.com/
répertoire.
Maintenant, si vous visitez http://mail.example.com
, vous serez redirigé vers https://mail.example.com
.
Étape 5 :Configurer la messagerie Web RainLoop
Connectez-vous au panneau d'administration RainLoop via l'URL suivante.
mail.example.com/?admin
Le nom d'utilisateur par défaut est admin
et le mot de passe par défaut est 12345
.
Une fois connecté, il est recommandé de changer à la fois votre nom d'utilisateur et votre mot de passe depuis admin
est une cible facile. Cliquez sur le security
onglet dans le volet de gauche. Commencez par mettre à jour votre mot de passe, puis reconnectez-vous et mettez à jour votre nom d'utilisateur.
Pour accéder à vos e-mails via RainLoop, vous devez configurer les paramètres du serveur de messagerie dans les Domains
languette. Par défaut, 4 domaines de messagerie sont ajoutés :gmail.com
, outlook.com
, qq.com
, yahoo.com
.
Les paramètres du serveur SMTP et les paramètres du serveur IMAP pour ces domaines de messagerie sont configurés par RainLoop, mais seul Gmail est activé par défaut. Pour activer les 3 autres domaines de messagerie, cochez simplement les cases.
Pour pouvoir accéder à votre propre serveur de messagerie, cliquez sur Add Domain
et entrez les paramètres de serveur IMAP et SMTP de votre propre serveur de messagerie.
- IMAP :serveur mail.example.com , port 143 , Sécurisez STARTTLS .
- SMTP :serveur mail.example.com , port 587 , Sécurisez STARTTLS . Cochez Utiliser l'authentification.
Si Rainloop et Postfix/Dovecot s'exécutent sur le même serveur, vous pouvez utiliser les configurations suivantes, afin que votre serveur n'ait pas à rechercher le domaine dans DNS et à établir une connexion TLS.
- IMAP :serveur 127.0.0.1 , port 143 , Sécurisé Aucun .
- SMTP :serveur 127.0.0.1 , port 25 , Sécurisé Aucun . N'utilisez pas l'authentification sur le port 25.
Vous devez également activer votre propre domaine de messagerie en cochant la case à droite, sinon l'erreur domain is not allowed
apparaîtra lors de la connexion à votre adresse e-mail.
Une fois la configuration terminée, entrez votre nom de domaine de messagerie Web RainLoop dans la barre d'adresse du navigateur sans /?admin
suffixe.
mail.example.com
Et connectez-vous à votre compte de messagerie.
Webmail RainLoop
Si l'authentification échoue, vous devrez peut-être activer la connexion courte dans la page des paramètres du serveur IMAP.
C'est tout ce que vous devez faire pour accéder à vos e-mails sur Gmail, Outlook ou votre propre domaine de messagerie. Si vous ajoutez plusieurs comptes de messagerie, vous pouvez facilement basculer entre eux à partir du menu déroulant de l'utilisateur. Très cool en effet ! Vous pouvez également configurer d'autres paramètres et personnaliser votre interface de messagerie Web.
Suppression des informations sensibles des en-têtes d'e-mail
Par défaut, Rainloop ajoutera un X-Mailer
l'en-tête de l'e-mail, indiquant que vous utilisez le webmail Rainloop et le numéro de version. Vous pouvez dire à Postfix de l'ignorer afin que le destinataire ne puisse pas le voir. Exécutez la commande suivante pour créer un fichier de vérification d'en-tête.
sudo nano /etc/postfix/smtp_header_checks
Mettez les lignes suivantes dans le fichier.
/^X-Mailer.*RainLoop/ IGNORE
Enregistrez et fermez le fichier. Modifiez ensuite le fichier de configuration principal de Postfix.
sudo nano /etc/postfix/main.cf
Ajoutez la ligne suivante à la fin du fichier.
smtp_header_checks = regexp:/etc/postfix/smtp_header_checks
Enregistrez et fermez le fichier. Exécutez ensuite la commande suivante pour reconstruire la table de hachage.
sudo postmap /etc/postfix/smtp_header_checks
Rechargez Postfix pour que le changement prenne effet.
sudo systemctl reload postfix
Désormais, Postfix n'inclura plus X-Mailer: Rainloop
dans les en-têtes des e-mails.
Augmenter la limite de taille des pièces jointes
Si vous utilisez PHP-FPM pour exécuter des scripts PHP, les fichiers tels que les images, les fichiers PDF téléchargés sur Rainloop ne peuvent pas dépasser 2 Mo. Pour augmenter la taille limite de téléchargement, modifiez le fichier de configuration PHP.
sudo nano /etc/php/7.4/fpm/php.ini
Trouvez la ligne suivante (ligne 846).
upload_max_filesize = 2M
Modifiez la valeur comme ci-dessous. Notez que cette valeur ne doit pas être supérieure à la limite de taille de pièce jointe définie par le serveur SMTP de Postfix.
upload_max_filesize = 50M
Trouvez ensuite la ligne suivante (ligne 694).
post_max_size = 8M
Modifiez la taille maximale des données POST que PHP acceptera.
post_max_size = 50M
Enregistrez et fermez le fichier. Vous pouvez également exécuter les deux commandes suivantes pour modifier la valeur sans ouvrir manuellement le fichier.
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /etc/php/7.4/fpm/php.ini sudo sed -i 's/post_max_size = 8M/post_max_size = 50M/g' /etc/php/7.4/fpm/php.ini
Redémarrez ensuite PHP-FPM.
sudo systemctl restart php7.4-fpm
Nginx définit également une limite de taille de fichier de téléchargement. La limite de taille de fichier de téléchargement maximale par défaut définie par Nginx est de 1 Mo. Si vous utilisez Nginx, modifiez le fichier de configuration Nginx.
sudo nano /etc/nginx/conf.d/mail.example.com.conf
Ajoutez la ligne suivante dans l'hôte virtuel SSL.
client_max_body_size 50M;
Enregistrez et fermez le fichier. Rechargez ensuite Nginx pour que les modifications prennent effet.
sudo systemctl reload nginx
Ensuite, connectez-vous au panneau d'administration Rainloop (https://mail.example.com/?admin
) et modifier la limite de taille des pièces jointes.
Enregistrez la modification. Vous devez vous déconnecter de votre messagerie Web et vous reconnecter pour que la modification prenne effet.
Télécharger une image en tant que thème personnalisé
Un utilisateur peut changer les thèmes Rainloop en cliquant sur l'icône de rouage dans le coin inférieur gauche et en sélectionnant les themes
onglet sur la barre de gauche. Vous pouvez également télécharger une image en tant que thème personnalisé.
Mon thème personnalisé.