Installer Roundcube Webmail sur Debian 11/10 avec Apache/Nginx
Roundcube est un client de messagerie Web open source gratuit et complet écrit en PHP. Un webmail est un client de messagerie dans votre navigateur. Au lieu de lire et d'envoyer des e-mails à partir d'un client de messagerie de bureau comme Mozilla Thunderbird, vous pouvez accéder à vos e-mails à partir d'un navigateur Web. Ce tutoriel va vous montrer comment installer le webmail Roundcube sur Debian 11/10 avec le serveur web Apache ou Nginx.
Caractéristiques du cube rond
La fonctionnalité Roundcube comprend :
- Carnet d'adresses
- Gestion des dossiers
- Recherche de messages
- Filtre de messages
- Vérification orthographique
- Prise en charge MIME
- Chiffrement et signature PGP
- Intégration de Mailvelope
- Les utilisateurs peuvent changer leurs mots de passe dans Roundcube.
- Importez des e-mails au format MIME ou Mbox.
- E-mail renvoyé (rebond)
- Prise en charge du cache Redis et Memcached
- Prise en charge de SMTPUTF8 et GSSAPI
- Un skin réactif appelé Elastic avec prise en charge complète des appareils mobiles
- Prise en charge d'OAuth2/XOauth (avec hooks de plugin)
- Destinataires collectés et expéditeurs de confiance
- Prise en charge complète d'Unicode avec la base de données MySQL
- Prise en charge de l'extension IMAP LITERAL
Exigences
Pour suivre ce tutoriel, on suppose que
- Le serveur SMTP Postfix et le serveur IMAP Dovecot ont été installés sur votre serveur Debian 11/10
Sinon, veuillez cliquer sur les liens ci-dessus et suivre les instructions pour remplir les conditions préalables. Notez que si vous avez déjà configuré votre serveur de messagerie à l'aide d'iRedMail, votre serveur répond à toutes les exigences et Roundcube est déjà installé sur votre serveur.
Passons maintenant à l’installation de Roundcube.
Étape 1 : Téléchargez le Webmail Roundcube sur Debian 11/10
Connectez-vous à votre serveur Debian via SSH, puis exécutez la commande suivante pour télécharger la dernière version stable à partir du référentiel Roundcube Github.
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gzRemarque : Vous pouvez toujours utiliser le format d'URL ci-dessus pour télécharger Roundcube à partir de la ligne de commande. Si une nouvelle version sort, remplacez simplement 1.6.0 par le nouveau numéro de version. Vous pouvez vérifier s’il existe une nouvelle version sur la page de téléchargement de Roundcube.
Extrayez l'archive tar, déplacez le dossier nouvellement créé vers la racine Web (/var/www/) et renommez-le en roundcube en même temps.
tar xvf roundcubemail-1.6.0-complete.tar.gz
sudo mkdir -p /var/www/
sudo mv roundcubemail-1.6.0 /var/www/roundcubeAccédez au répertoire roundcube.
cd /var/www/roundcubeDéfinissez l'utilisateur du serveur Web (www-data) comme propriétaire des répertoires temp et logs afin que le serveur Web puisse écrire dans ces deux répertoires. .
sudo chown www-data:www-data temp/ logs/ -RÉtape 2 : Installer les extensions PHP
Exécutez la commande suivante pour installer les extensions PHP requises.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php-net-ldap2 php-net-ldap3 php-imagick php8.1-fpm php8.1-common php8.1-gd php8.1-imap php8.1-mysql php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp php8.1-redisÉtape 3 : Créer une base de données MariaDB et un utilisateur pour Roundcube
Connectez-vous au shell MariaDB en tant que root.
sudo mysql -u rootCréez ensuite une nouvelle base de données pour Roundcube à l'aide de la commande suivante. Ce tutoriel l'appelle roundcube, vous pouvez utiliser le nom de votre choix pour la base de données.
CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;Ensuite, créez un nouvel utilisateur de base de données sur localhost à l'aide de la commande suivante. Encore une fois, ce tutoriel l'appelle roundcubeuser, vous pouvez utiliser le nom de votre choix. Remplacez mot de passe par votre mot de passe préféré.
CREATE USER roundcube@localhost IDENTIFIED BY 'password';Accordez ensuite toutes les autorisations de la nouvelle base de données au nouvel utilisateur afin que le webmail Roundcube puisse écrire dans la base de données plus tard.
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost;
Videz la table des privilèges pour que les modifications prennent effet.
flush privileges;Quittez le shell MariaDB :
exit;Importez les tables initiales dans la base de données roundcube.
sudo mysql roundcubemail < /var/www/roundcube/SQL/mysql.initial.sqlÉtape 4 : Créer un hôte virtuel Apache ou un fichier de configuration Nginx pour Roundcube
Apache
Si vous utilisez le serveur Web Apache, créez un hôte virtuel pour Roundcube.
sudo nano /etc/apache2/sites-available/roundcube.confRemarque : Si vous avez suivi mon tutoriel Postfix/Dovecot, un hôte virtuel existe déjà. vous devez modifier le fichier suivant. (Supprimez le contenu existant.)
sudo nano /etc/apache2/sites-available/mail.example.com.confMettez le texte suivant dans le fichier. Remplacez mail.example.com par votre vrai nom de domaine et n'oubliez pas de définir un enregistrement DNS A pour celui-ci.
<VirtualHost *:80>
ServerName mail.example.com
DocumentRoot /var/www/roundcube/
ErrorLog ${APACHE_LOG_DIR}/roundcube_error.log
CustomLog ${APACHE_LOG_DIR}/roundcube_access.log combined
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/roundcube/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel avec :
sudo a2ensite roundcube.confRechargez Apache pour que les modifications prennent effet.
sudo systemctl reload apache2Vous devriez maintenant pouvoir voir l'assistant d'installation Web de Roundcube sur http://mail.example.com/installer.
Nginx
Si vous utilisez le serveur Web Nginx, créez un hôte virtuel pour Roundcube.
sudo nano /etc/nginx/conf.d/roundcube.conf
Remarque : Si vous avez suivi mon tutoriel Postfix/Dovecot, un hôte virtuel existe déjà. vous devez modifier le fichier suivant. (Supprimez le contenu existant.)
sudo nano /etc/nginx/conf.d/mail.example.com.confMettez le texte suivant dans le fichier. Remplacez le nom de domaine et n'oubliez pas de définir un enregistrement DNS A pour celui-ci.
server {
listen 80;
listen [::]:80;
server_name mail.example.com;
root /var/www/roundcube/;
index index.php index.html index.htm;
error_log /var/log/nginx/roundcube.error;
access_log /var/log/nginx/roundcube.access;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.well-known/acme-challenge {
allow all;
}
location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(bin|SQL)/ {
deny all;
}
# A long browser cache lifetime can speed up repeat visits to your page
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
}Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.
sudo nginx -tSi le test réussit, rechargez Nginx pour que les modifications prennent effet.
sudo systemctl reload nginxVous devriez maintenant pouvoir voir l'assistant d'installation Web de Roundcube sur http://mail.example.com/installer.
Étape 5 : Activation de HTTPS
Il est fortement recommandé d'utiliser TLS pour chiffrer votre messagerie Web. Nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur le serveur Debian 11/10.
sudo apt install certbotSi vous utilisez Nginx, vous devez également installer le plugin Certbot Nginx.
sudo apt install python3-certbot-nginxEnsuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d mail.example.comSi vous utilisez Apache, installez le plugin Certbot Apache.
sudo apt install python3-certbot-apacheEt exécutez cette commande pour obtenir et installer le certificat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email -d mail.example.comOù
--nginx: utilisez le plugin nginx.--apache: utilisez le plugin Apache.--agree-tos: accepter les conditions d'utilisation.--redirect: Forcer le HTTPS par redirection 301.--hsts: ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Se défend contre le décapage SSL/TLS.--staple-ocsp: active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat proposé par le serveur pendant TLS.
Le certificat devrait maintenant être obtenu et automatiquement installé.
Remarque : Si vous avez suivi mon tutoriel Postfix/Dovecot et que vous installez maintenant Roundcube sur le même serveur, alors certbot vous dira probablement qu'un certificat pour mail.example.com existe déjà comme indiqué ci-dessous, donc vous pouvez choisir d'installer le certificat TLS existant dans le fichier de configuration de votre serveur Web.
Étape 6 : Ajout d'une entrée DNS locale
Il est recommandé de modifier le fichier /etc/hosts sur le serveur de messagerie et d'ajouter l'entrée suivante, afin que Roundcube n'ait pas à interroger le DNS public, ce qui accélérera un peu le chargement des pages Web. .
127.0.0.1 localhost mail.example.comÉtape 7 : configurer Roundcube
Accédez au répertoire de configuration de Roundcube.
cd /var/www/roundcube/config/Copiez l'exemple de fichier de configuration.
sudo cp config.inc.php.sample config.inc.phpModifiez le nouveau fichier.
sudo nano config.inc.phpRecherchez la ligne suivante, qui indique à Roundcube comment se connecter à la base de données.
$config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';Vous devez remplacer pass par le vrai mot de passe Roundcube. Si le mot de passe contient des caractères spéciaux, vous devez utiliser un codage en pourcentage. Par exemple, si le mot de passe est mPcEIRxyJhCz8uiWIUopqWzaSTk=, alors la ligne ressemblera à ceci :
$config['db_dsnw'] = 'mysql://roundcube:mPcEIRxyJhCz8uiWIUopqWzaSTk%3D@localhost/roundcubemail';Le caractère spécial = est représenté par %3D.
Trouvez ensuite les deux lignes suivantes.
$config['imap_host'] = 'localhost:143';
$config['smtp_host'] = 'localhost:587';Remplacez la valeur comme suit :
$config['imap_host'] = 'tls://mail.example.com:143';
$config['smtp_host'] = 'tls://mail.example.com:587';Trouvez la ligne suivante.
$config['des_key'] = 'rcmail-!24ByteDESkey*Str';Remplacez la clé par défaut par des caractères aléatoires comme ci-dessous.
$config['des_key'] = '58kptbzEcNKi/bc9OL90//3ATnQ=';Ensuite, trouvez les lignes suivantes
// List of active plugins (in plugins/ directory)
$config['plugins'] = [
'archive',
'zipdownload',
];
Par défaut, seuls deux plugins sont activés. Nous pouvons activer plus de plugins comme ci-dessous.
// List of active plugins (in plugins/ directory)
$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];Enfin, nous pouvons activer le correcteur orthographique intégré en ajoutant la ligne suivante à la fin de ce fichier.
$config['enable_spellcheck'] = true;Enregistrez et fermez le fichier.
Accédez à votre domaine Webmail et connectez-vous.
Interface de messagerie Web Roundcube
Vous devez maintenant supprimer l'intégralité du dossier d'installation de la racine du document ou vous assurer que l'option enable_installer dans le fichier config.inc.php est désactivée.
sudo rm /var/www/roundcube/installer/ -rCes fichiers peuvent exposer au public des données de configuration sensibles telles que les mots de passe du serveur et les clés de cryptage. Assurez-vous que vous ne pouvez pas accéder à la page du programme d'installation à partir de votre navigateur.
Étape 8 : Configurer le filtre de messages Sieve
Vous pouvez créer des dossiers dans la messagerie Web Roundcube, puis créer des règles pour filtrer les e-mails dans différents dossiers. Pour ce faire, vous devez installer le serveur ManageSieve avec la commande suivante.
sudo apt install dovecot-sieve dovecot-managesievedPar défaut, Postfix utilise son agent de livraison local (LDA) intégré pour déplacer les e-mails entrants vers le magasin de messages (boîte de réception, envoyés, corbeille, courrier indésirable, etc.). Nous pouvons le configurer pour utiliser Dovecot pour envoyer des e-mails, via le protocole LMTP, qui est une version simplifiée de SMTP. LMTP permet un système de messagerie hautement évolutif et fiable et il est requis si vous souhaitez utiliser le plugin sieve pour filtrer les messages entrants vers différents dossiers.
Installez le serveur LMTP Dovecot.
sudo apt install dovecot-lmtpdModifiez le fichier de configuration principal de Dovecot.
sudo nano /etc/dovecot/dovecot.confAjoutez lmtp et sieve aux protocoles pris en charge.
protocols = imap lmtp sieveEnregistrez et fermez le fichier. Modifiez ensuite le fichier Dovecot 10-master.conf.
sudo nano /etc/dovecot/conf.d/10-master.confModifiez la définition du service lmtp comme suit.
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}Ensuite, modifiez le fichier de configuration principal de Postfix.
sudo nano /etc/postfix/main.cfAjoutez les lignes suivantes à la fin du fichier. La première ligne indique à Postfix de transmettre les e-mails au magasin de messages local via le serveur LMTP Dovecot. La deuxième ligne désactive SMTPUTF8 dans Postfix, car Dovecot-LMTP ne prend pas en charge cette extension de messagerie.
mailbox_transport = lmtp:unix:private/dovecot-lmtp
smtputf8_enable = noEnregistrez et fermez le fichier. Ouvrez le fichier /etc/dovecot/conf.d/15-lda.conf.
sudo nano /etc/dovecot/conf.d/15-lda.confFaites défiler jusqu'à la fin du fichier, décommentez la ligne mail_plugins et ajoutez le plugin sieve à l'agent de livraison local (LDA).
protocol lda {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins sieve
}Enregistrez et fermez le fichier. Si vous pouvez trouver le fichier 20-lmtp.conf sous le répertoire /etc/dovecot/conf.d/, alors vous devez également activer le plugin sieve dans ce fichier comme ci-dessous .
protocol lmtp {
mail_plugins = quota sieve
}Modifiez le fichier /etc/dovecot/conf.d/10-mail.conf.
sudo nano /etc/dovecot/conf.d/10-mail.confLes scripts Sieve sont stockés dans le répertoire personnel de chaque utilisateur. Si vous avez suivi mon didacticiel PostfixAdmin et utilisez des domaines de boîtes aux lettres virtuelles, vous devez alors activer mail_home pour les utilisateurs virtuels en ajoutant la ligne suivante dans le fichier, car les utilisateurs virtuels n'ont pas de répertoire personnel par défaut. .
mail_home = /var/vmail/%d/%nEnregistrez et fermez le fichier.
Enfin, redémarrez Postfix et Dovecot.
sudo systemctl restart postfix dovecotVous pouvez maintenant accéder à la messagerie Web Roundcube, ouvrir un e-mail, cliquer sur le bouton plus, puis sélectionner créer des filtres pour créer des filtres de messages. Par exemple, je crée un filtre qui déplace chaque e-mail envoyé depuis redhat.com vers le dossier Red Hat.
Si vous n'avez pas l'option create filter, c'est probablement parce que vous n'avez pas activé le plugin managesieve. Editez le fichier config.inc.php.
sudo nano /var/www/roundcube/config/config.inc.phpA la fin de ce fichier, vous trouverez une liste des plugins actifs. ajoutez le plugin managesieve dans le tableau. L’ordre des plugins n’a pas d’importance.
// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];
Enregistrez et fermez le fichier.
Notez que si vous déplacez un ensemble de filtres tamis d'un ancien serveur de messagerie vers votre nouveau serveur de messagerie, vous devez accéder à Paramètres -> Filtres, puis cliquer sur Actions. et activez le jeu de filtres, sinon le serveur Dovecot LMTP n'exécutera pas le filtre tamis.
Étape 9 : Suppression des informations sensibles des en-têtes de courrier électronique
Par défaut, Roundcube ajoutera un en-tête d'e-mail User-Agent, indiquant que vous utilisez le webmail Roundcube et le numéro de version. Vous pouvez demander à 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_checksMettez les lignes suivantes dans le fichier.
/^User-Agent.*Roundcube Webmail/ IGNORE
Enregistrez et fermez le fichier. Modifiez ensuite le fichier de configuration principal de Postfix.
sudo nano /etc/postfix/main.cfAjoutez la ligne suivante à la fin du fichier.
smtp_header_checks = regexp:/etc/postfix/smtp_header_checksEnregistrez et fermez le fichier. Exécutez ensuite la commande suivante pour reconstruire la table de hachage.
sudo postmap /etc/postfix/smtp_header_checksRechargez Postfix pour que la modification prenne effet.
sudo systemctl reload postfixDésormais, Postfix n'inclura plus User-Agent : Roundcube Webmail dans les en-têtes lors de l'envoi d'e-mails sortants.
Étape 10 : Configurer le plugin de mot de passe dans Roundcube
Roundcube comprend un plugin de mot de passe qui permet aux utilisateurs de modifier leurs mots de passe depuis l'interface de messagerie Web. Editez le fichier config.inc.php.
sudo nano /var/www/roundcube/config/config.inc.phpAssurez-vous que le plugin password est dans la liste des plugins à la fin de ce fichier. L’ordre des plugins n’a pas d’importance.
$config['plugins'] = array('acl', 'additional_message_headers', 'password', .....);Enregistrez et fermez le fichier.
Cependant, nous devons configurer ce plugin avant qu'il ne fonctionne. Exécutez la commande suivante pour copier le fichier de configuration du plug-in de mot de passe distribué dans un nouveau fichier.
sudo cp /var/www/roundcube/plugins/password/config.inc.php.dist /var/www/roundcube/plugins/password/config.inc.phpModifiez le fichier de configuration du plugin de mot de passe.
sudo nano /var/www/roundcube/plugins/password/config.inc.phpRecherchez la ligne suivante :
$config['password_db_dsn'] = '';Ce paramètre est utilisé pour indiquer au plugin de mot de passe où les mots de passe des utilisateurs sont stockés. Par défaut, la valeur est vide et la base de données roundcube sera interrogée, qui ne stocke pas les mots de passe des utilisateurs. Si vous avez suivi mon didacticiel PostfixAdmin, les mots de passe des utilisateurs sont stockés dans la table postfixadmin.mailbox, nous devons donc modifier la valeur comme suit :
$config['password_db_dsn'] = 'mysql://postfixadmin:postfixadmin_database_password@127.0.0.1/postfixadmin';Le indique au plugin de mot de passe de se connecter à la base de données postfixadmin. Si vous ne vous souvenez pas du mot de passe de votre base de données postfixadmin, vous pouvez le trouver dans le fichier /etc/dovecot/dovecot-sql.conf.ext. Si votre mot de passe PostfixAdmin contient un guillemet simple, vous pouvez utiliser une barre oblique inverse (\') pour l'échapper.
Recherchez ensuite la ligne suivante.
$config['password_query'] = 'SELECT update_passwd(%c, %u)';Remplacez-le par ce qui suit.
$config['password_query'] = 'UPDATE mailbox SET password=%D,modified=NOW() WHERE username=%u';Je recommande d'activer un vérificateur de force de mot de passe pour empêcher les utilisateurs de définir des mots de passe faibles. Allez au début de ce fichier, vous pouvez trouver la ligne suivante.
$config['password_strength_driver'] = null;Nous pouvons utiliser le pilote de force de mot de passe zxcvbn, alors remplacez-le par :
$config['password_strength_driver'] = 'zxcvbn';Ajoutez la ligne suivante dans ce fichier pour autoriser uniquement les mots de passe forts.
$config['password_zxcvbn_min_score'] = 5;Remarque : Le paramètre $config['password_minimum_score'] ne fonctionne pas avec le pilote zxcvbn, alors laissez-le tranquille.
Vous pouvez également définir une longueur minimale pour le mot de passe. Trouvez la ligne suivante.
$config['password_minimum_length'] = 0;Remplacez-le par :
$config['password_minimum_length'] = 8;Rappelez-vous que nous avons utilisé le schéma de mot de passe ARGON2I dans le didacticiel PostfixAdmin, nous devons donc également configurer le plugin de mot de passe pour utiliser ARGON2I. Recherchez les lignes suivantes dans le fichier.
$config['password_algorithm'] = 'clear';Par défaut, le mot de passe sera stocké sous forme de texte clair, modifiez la valeur comme suit pour utiliser l'algorithme de mot de passe intégré de Dovecot.
$config['password_algorithm'] = 'dovecot';Recherchez ensuite la ligne suivante, qui indique où se trouve le générateur de hachage de mot de passe de Dovecot.
$config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; // for dovecot-1.xRemplacez-le par ce qui suit.
$config['password_dovecotpw'] = '/usr/bin/doveadm pw -r 5';Recherchez ensuite la ligne suivante, qui indique quel schéma de mot de passe sera utilisé.
$config['password_dovecotpw_method'] = 'CRAM-MD5';Remplacez-le par :
$config['password_dovecotpw_method'] = 'ARGON2I';Trouvez la ligne suivante.
$config['password_dovecotpw_with_method'] = false;Remplacez false par true. Cela ajoutera un préfixe {ARGON2I} au mot de passe haché, afin que vous reconnaissiez quel schéma de mot de passe est utilisé.
$config['password_dovecotpw_with_method'] = true;Enregistrez et fermez le fichier. Puisque ce fichier contient le mot de passe de la base de données, nous devons autoriser uniquement l'utilisateur www-data à lire et à écrire dans ce fichier.
sudo chown www-data:www-data /var/www/roundcube/plugins/password/config.inc.php
sudo chmod 600 /var/www/roundcube/plugins/password/config.inc.phpLes utilisateurs devraient désormais pouvoir modifier leurs mots de passe dans l'interface de messagerie Web Roundcube.
Comment configurer les messages de vacances/d'absence du bureau
Nous pouvons utiliser le filtre tamis pour créer des messages de vacances/absence du bureau. Accédez à Roundcube Paramètres -> Filtres. Cliquez ensuite sur le bouton créer pour créer un filtre.
- Donnez à ce fichier un nom comme « absent du bureau ».
- Les nouveaux filtres ne sont pas désactivés, vous pouvez donc laisser le bouton tranquille.
- Dans le champ Portée, sélectionnez tous les messages.
- Sélectionnez Répondre avec un message dans les paramètres Actions et saisissez le message qui sera automatiquement envoyé.
- Saisissez 1 dans la fréquence d'envoi des messages afin que la réponse automatique ne soit envoyée qu'une fois par jour pour chaque expéditeur. Si vous définissez cette valeur sur 7, la réponse automatique sera envoyée une fois tous les 7 jours pour chaque expéditeur.
- Laissez les autres champs de texte vides.
- Cliquez sur le bouton Enregistrer et vous avez terminé.
De retour au bureau, vous pouvez activer le bouton « Filtre désactivé » et cliquer sur le bouton Enregistrer pour désactiver ce filtre.
Augmenter la limite de taille du fichier de téléchargement
Si vous utilisez PHP-FPM pour exécuter des scripts PHP, les fichiers tels que les images et les fichiers PDF téléchargés sur Roundcube 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/8.0/fpm/php.iniTrouvez la ligne suivante (ligne 846).
upload_max_filesize = 2MModifiez la valeur comme ci-dessous. Notez que cette valeur ne doit pas être supérieure à la taille limite des pièces jointes définie par le serveur SMTP Postfix.
upload_max_filesize = 50MRecherchez ensuite la ligne suivante (ligne 694).
post_max_size = 8MModifiez la taille maximale des données POST que PHP acceptera.
post_max_size = 50MEnregistrez 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/8.0/fpm/php.ini
sudo sed -i 's/post_max_size = 8M/post_max_size = 50M/g' /etc/php/8.0/fpm/php.iniRedémarrez ensuite PHP-FPM.
sudo systemctl restart php8.1-fpmNginx définit également une limite de taille de fichier de téléchargement. La taille maximale par défaut du fichier de téléchargement 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.confAjoutez 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 nginxIl existe 3 plugins dans Roundcube pour le téléchargement de pièces jointes/fichiers :
- base de données_pièces jointes
- système de fichiers_pièces jointes
- attachements_redondants
Roundcube ne peut utiliser qu'un seul plugin pour les pièces jointes/téléchargements de fichiers. J'ai trouvé que le plugin database_attachment peut être sujet aux erreurs et vous causer des problèmes. Pour le désactiver, modifiez le fichier de configuration Roundcube.
sudo nano /var/www/roundcube/config/config.inc.phpFaites défiler jusqu'à la fin de ce fichier. Vous verrez une liste des plugins actifs. Supprimez 'database_attachments' de la liste. Notez que vous devez activer au moins un autre plugin de pièce jointe, par exemple filesystem_attachments.
// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];
Enregistrez et fermez le fichier.
Configuration de plusieurs domaines de messagerie
Pour héberger plusieurs domaines de messagerie, veuillez lire l'article suivant :
- Comment héberger plusieurs domaines de messagerie dans PostfixAdmin
Des conseils de dépannage
Si vous rencontrez des erreurs, vous pouvez consulter les journaux d'erreurs du serveur Web sur /var/log/apache2/roundcube_error.log (si vous utilisez Apache) ou /var/log/nginx/. roundcube.error (si vous utilisez Nginx.), ainsi que les journaux d'erreurs Roundcube dans le répertoire /var/www/roundcube/logs/.
Échec de la connexion au serveur de stockage
Si vous voyez l'erreur Échec de la connexion au serveur de stockage lorsque vous essayez de vous connecter à RoundCube, c'est probablement parce que
- Le serveur Dovecot ne fonctionne pas. Vous pouvez redémarrer Dovecot avec
sudo systemctl restart dovecotet vérifier son statut avecsystemctl status dovecot. - Vous utilisez un certificat TLS auto-signé. Roundcube nécessite un certificat TLS valide émis par une autorité de certification de confiance telle que Let's Encrypt.
- Votre certificat TLS a expiré. Vous pouvez renouveler le certificat TLS Let's Encrypt avec
sudo certbot renouveler, puis redémarrer Postfix et Dovecot (sudo systemctl restart postfix dovecot).
Vous pouvez également essayer d'ajouter une entrée DNS personnalisée dans le fichier /etc/hosts comme décrit à l'étape 8 sur le serveur Roundcube, afin que Roundcube puisse résoudre correctement le nom d'hôte du serveur de messagerie.
Impossible de charger le message depuis le serveur
Si vous voyez l'erreur « Erreur interne : impossible de charger le message depuis le serveur », c'est probablement parce que vous essayez d'ouvrir un e-mail supprimé (URL invalide). Essayez d'accéder au domaine racine de la messagerie (mail.example.com) pour voir si cela fonctionne.
Le filtre de messages Sieve ne fonctionne pas ?
Si vous avez suivi l'étape 8 pour configurer le filtre tamis à la lettre, mais que vous ne parvenez toujours pas à le faire fonctionner, vous pouvez activer le débogage dans Dovecot pour découvrir ce qui ne va pas.
sudo nano /etc/dovecot/dovecot.confAjoutez la ligne suivante à la fin de ce fichier pour activer le débogage dans Dovecot.
mail_debug=yesEnregistrez et fermez le fichier. Redémarrez ensuite Dovecot.
sudo systemctl restart dovecotEnsuite, envoyez un e-mail test à l'adresse e-mail de votre domaine et ouvrez le fichier journal de messagerie.
sudo nano /var/log/mail.logVous pouvez trouver des informations de débogage pour le filtre de messages Sieve. Par exemple, j'ai constaté que Dovecot n'était pas en mesure d'exécuter mon script Sieve.
Jan 10 11:35:24 mail dovecot: lmtp([email ) Debug: sieve: Aborted running script `/var/vmail/linux-terminal.com/xiao/.dovecot.svbin'Il s'avère que mon filtre Sieve comporte trop de règles et que certaines d'entre elles sont en conflit les unes avec les autres. Je supprime ces règles contradictoires et cela fonctionne à nouveau.
Échec de la recherche temporaire (Code : 451)
Si vous rencontrez cette erreur lorsque vous essayez d'envoyer un e-mail dans Roundcube, il s'agit probablement d'un problème avec votre configuration Postfix. Par exemple, certaines personnes peuvent avoir l'erreur suivante dans le fichier /var/log/mail.log.
warning: connect to pgsql server localhost: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "postfixadmin"?connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "postfixadmin"?Cela signifie que votre authentification par mot de passe pour la base de données Postfixadmin ne fonctionne pas.
Comment mettre à niveau Roundcube
C'est très simple. Par exemple, voici comment passer à Roundcube 1.6.1 après sa sortie.
Téléchargez la dernière version de Roundcube dans votre répertoire personnel.
cd ~
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.1/roundcubemail-1.6.1-complete.tar.gzExtrayez l'archive.
tar xvf roundcubemail-1.6.1-complete.tar.gzRemplacez le propriétaire par www-data.
chown www-data:www-data roundcubemail-1.6.1/ -RExécutez ensuite le script d'installation.
roundcubemail-1.6.1/bin/installto.sh /var/www/roundcube/Une fois cela fait, connectez-vous au webmail Roundcube et cliquez sur le bouton À propos pour vérifier quelle version de Rouncube vous utilisez.
Emballer
J'espère que ce tutoriel vous a aidé à installer Roundcube Webmail sur Debian 11/10. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour recevoir plus de trucs et astuces 🙂






