Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / E-Mails / Installer le serveur IMAP Cyrus sur Debian

Installer le serveur IMAP Cyrus sur Debian

Par Pierre-Yves Landuré Dernière modification 08/11/2017 15:09

Le serveur e-mail Cyrus est l'un des meilleurs serveurs IMAP disponible sous Linux. Je l'utilise avec bonheur depuis plus de 5 ans. Son principale avantage est de supporter parfaitement le filtrage des emails par le serveur, ainsi que le langage Sieve qui permet de paramétrer ce filtrage.

Ce guide est testé sur:

  • Debian 5.0 Lenny
  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy

Prérequis

Ce guide nécessite:

Ce guide recommande:

Paramètres

Renseignez le domaine d'email principal du serveur IMAP:

DEFAULT_MAIL_DOMAIN="domain.com"

Renseignez le nom de domaine ou sera disponible le serveur IMAP:

DOMAIN="imap.domain.com"

Renseignez le nom d'hôte du serveur MySQL:

MYSQL_HOST="localhost"

Si le serveur MySQL n'est pas local, l'outil mysql-tools essaiera de s'y connecter avec le client MySQL, ou, en cas d'échec de connexion, via une connexion SSH.

Renseignez le nom du certificat SSL à utiliser pour chiffrer l'application avec TLS ou IMAPS (créé via la procédure Créer un certificat SSL / TLS sur Debian) (obligatoire):

SSL_KEY_NAME="${DOMAIN}"

Accès à la base de données

Si vous avez installé l'outil Cyrus-Admin, renseignez les paramètres d'accès à sa base de données:

MYSQL_DB="cyrus_${DOMAIN}"
MYSQL_USER="c_imap-domain-com"
MYSQL_PASSWORD="some-password"

Installation

Préparation de l'environnement

Installez le serveur:

if [ -n "$(command apt-cache pkgnames cyrus-imapd-2.4)" ]; then
command apt-get install cyrus-imapd-2.4 cyrus-admin-2.4
else
command apt-get install cyrus-imapd-2.2 cyrus-admin-2.2
fi

Installez les logiciels nécessaires:

command apt-get install mysql-client libsasl2-modules-sql openssl apg

Corrigez le script init.d de Cyrus sur Debian 7.0 Wheezy et appliquez le correctif:

if [ -e '/etc/init.d/cyrus-imapd' ]; then
  command sed -i -e '0,/createdir $dir/{//a\
dir="/var/run/cyrus/proc"\
\[ -z "$dir" \] \\\
|| createdir cyrus mail 750 $dir\
dir="/var/run/cyrus/lock"\
\[ -z "$dir" \] \\\
|| createdir cyrus mail 750 $dir
;}' \
      '/etc/init.d/cyrus-imapd'
/etc/init.d/cyrus-imapd stop
/etc/init.d/cyrus-imapd start
fi

Création de la base de données

Important: Cette section n'est nécessaire que dans le cas ou vous n'utilisez pas l'outil Cyrus-Admin.

Créez la base de données:

# MYSQL_PARAMS="$(command mysql-tools --server="${MYSQL_HOST}" --with-ssh --auto-hosts --db-prefix="cyrus" --create "${DOMAIN}")"

Récupérez les paramètres de la nouvelle base de données:

# MYSQL_DB="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_DB" | cut --delimiter="=" --fields="2-")"
# MYSQL_USER="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_USER" | cut --delimiter="=" --fields="2-")"
# MYSQL_PASSWORD="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_PASSWORD" | cut --delimiter="=" --fields="2-")"
# echo "${MYSQL_PARAMS}"

Notez les informations de connexion fournies par la commande.

Initialisez le contenu de la base de données :

# command wget 'https://raw.github.com/biapy/howto.biapy.com/master/exim4/cyrus-schema.sql' \
#    --quiet --no-check-certificate --output-document=- \
#  | command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \
# --host="${MYSQL_HOST}" "${MYSQL_DB}"

Création de l'administrateur

Créez le domaine d'email par défaut:

command echo "INSERT INTO domain(name) VALUES ('${DEFAULT_MAIL_DOMAIN}');" \
| command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \
--host="${MYSQL_HOST}" "${MYSQL_DB}"

Créez un mot de passe pour l'utilisateur d'administration du serveur IMAP:

ADMIN_USERNAME="cyrus"
ADMIN_PASSWORD="$(command apg -q -a 0 -n 1 -M NCL)"

Créez l'utilisateur:

command echo "INSERT INTO user (domain_id, username, password, enabled, has_mailbox) VALUES (
(SELECT id FROM domain WHERE name='${DEFAULT_MAIL_DOMAIN}'),
'${ADMIN_USERNAME}', '${ADMIN_PASSWORD}', 1, 0);" \
| command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \
--host="${MYSQL_HOST}" "${MYSQL_DB}"

Affichez le mot de passe d'utilisateur, et notez le précieusement:

command echo "Les informations de connexion de l'administrateur du serveur IMAP sont:
* Identifiant : '${ADMIN_USERNAME}'
* Mot de passe : '${ADMIN_PASSWORD}'"

Configuration du serveur IMAP

Configuration du chiffrement

Déterminez les chemins du certificat SSL:

IMAP_SSL_KEY="/etc/ssl/private/${SSL_KEY_NAME}.key"
IMAP_SSL_CRT="/etc/ssl/certificates/${SSL_KEY_NAME}.crt"
IMAP_SSL_CHAIN_CA="/etc/ssl/chains/${SSL_KEY_NAME}.ca"
IMAP_SSL_ROOT_CA="/etc/ssl/roots/${SSL_KEY_NAME}-root.ca"

Ajoutez l'utilisateur cyrus au groupe ssl-cert:

command adduser cyrus ssl-cert

Configurez le chiffrement TLS du server IMAP:

command sed -i \
-e "s|^[#]*\(tls_cert_file:\).*|\1 ${IMAP_SSL_CRT}|" \
-e "s|^[#]*\(tls_key_file:\).*|\1 ${IMAP_SSL_KEY}|" \
-e 's|^[#]*\(allowplaintext:\).*|\1 no|' \
'/etc/imapd.conf'
if [ -e "${IMAP_SSL_CHAIN_CA}" ]; then
command sed -i \
-e "s|^[#]*\(tls_ca_file:\).*|\1 ${IMAP_SSL_CHAIN_CA}|" \
'/etc/imapd.conf'
fi
if [ -e "${IMAP_SSL_ROOT_CA}" ]; then
command sed -i \
-e "s|^[#]*\(tls_ca_path:\).*|\1 ${IMAP_SSL_ROOT_CA}|" \
'/etc/imapd.conf'
fi

Configuration des protocoles proposés

Désactivez les fonctionnalités POP3 et IMAP non chiffré et activez le IMAPS:

command sed -i -e 's/^\([ \t]*\)\(pop3[ \t]\{1\}.*\)$/\1#\2/' \
-e 's/^\([ \t]*\)\(nntp[ \t]\{1\}.*\)$/\1#\2/' \
-e 's/^\([ \t]*\)\(pop3s[ \t]\{1\}.*\)$/\1#\2/' \
-e 's/^#*\([ \t]*\)#*\(imaps[ \t]\{1\}.*imapd.*\)$/\1\2/' \
-e 's/^#*\([ \t]*\)#*\(imap[ \t]\{1\}.*imapd.*\)$/\1\2/' \
-e 's/^#*\([ \t]*\)#*\(lmtp[ \t]\{1\}.*lmtpd.*localhost:lmtp.*\)$/\1\2/' \
'/etc/cyrus.conf'

Le protocol LMTP est utilisé par Exim 4 pour déposer le courrier entrant dans les boites mail Cyrus. Exim 4 ne supporte pas l'identification pour ce protocole. Désactivez l'identification pour le protocole LMTP (en assument un role d'administration par défaut):

command sed -i -e 's/^\(.*lmtp[ \t]\{1\}.*cmd="\)[^"]*\(".*localhost:lmtp.*$\)/\1lmtpd -a\2/' \
'/etc/cyrus.conf'

Définissez le port standard pour lmtp :

command echo -e "lmtp\t\t2003/tcp\t\t\t# Cyrus IMAP lmtp" >> '/etc/services'

Configuration de l'identification via SASL

Autorisez le serveur IMAP à accéder à la base de données de SASL:

command adduser cyrus sasl

Autoriser les points dans les noms d'utilisateurs (c.a.d. les points dans les adresses électroniques) avec le serveur IMAP Cyrus:

command sed -i \
-e 's/^\(unixhierarchysep:\).*/\1 yes/' \
'/etc/imapd.conf'

Configurez l'identification via SASL, les utilisateurs d'administration, et le domaine d'email par défaut:

command sed -i \
-e "s/^[#]*\(admins:\).*/\1 ${ADMIN_USERNAME}/" \
-e 's/^[#]*\(sasl_mech_list:\).*/\1 PLAIN DIGEST-MD5 CRAM-MD5/' \
-e 's/^[#]*\(sasl_minimum_layer:\).*/\1 0/' \
-e 's/^[#]*\(sasl_pwcheck_method:\).*/\1 auxprop/' \
-e 's/^[#]*\(virtdomains:\).*/\1 userid/' \
-e "s/^[#]*\(defaultdomain:\).*/\1 ${DEFAULT_MAIL_DOMAIN}/" \
  '/etc/imapd.conf'

Configurez l'obtention des utilisateurs via la base MySQL:

command sed -i -e 's/^[#]*\(sasl_auxprop_plugin:\).*/\1 sql/' \
-e "/^[#]*\(sasl_auxprop_plugin:\).*/a\\
sasl_sql_engine: mysql\\
sasl_sql_hostnames: ${MYSQL_HOST}\\
sasl_sql_user: ${MYSQL_USER}\\
sasl_sql_passwd: ${MYSQL_PASSWORD}\\
sasl_sql_database: ${MYSQL_DB}\\
sasl_sql_select: SELECT user.password AS userPassword FROM user JOIN domain ON (user.domain_id = domain.id) WHERE (domain.name='%r' OR domain.name='${DEFAULT_MAIL_DOMAIN}') AND user.username='%u' AND user.enabled=1;\\
sasl_sql_update: UPDATE user SET user.password = '%v' FROM domain WHERE user.username = '%u' AND user.domain_id = domain.id AND (domain.name='%r' OR domain.name='${DEFAULT_MAIL_DOMAIN}') AND user.enabled=1;" \
'/etc/imapd.conf'

Rechargez la configuration du serveur IMAP:

command test -x '/etc/init.d/cyrus2.2' && /etc/init.d/cyrus2.2 restart
command test -x '/etc/init.d/cyrus-imapd' && /etc/init.d/cyrus-imapd restart

Gestion à distance des filtres

Cyrus utilise le langage de description des filtres de messages Sieve. Il est possible de configurer des filtres de message coté serveur à l'aide de certain clients (Thunderbird, Horde, etc).

Si le client Sieve n'est pas présent sur l'hôte local, ie démon timsieved doit pouvoir accepter les connexions distantes.

Activez les connexions distantes pour Sieve (dangereux, uniquement si le serveur est derrière un pare-feu):

command sed -i \
-e 's/localhost:sieve/sieve/' \
'/etc/cyrus.conf'

Rechargez la configuration du serveur IMAP:

command test -x '/etc/init.d/cyrus2.2' && /etc/init.d/cyrus2.2 restart
command test -x '/etc/init.d/cyrus-imapd' && /etc/init.d/cyrus-imapd restart

Création automatique des boîtes méls

La base de données permet de stocker de manière simple et lisibles les informations de connexion des utilisateurs. Pour compléter la création d'un compte utilisateur, il faut créer sa boite mél.

Mettez en place un script créant automiquement les boites mails des nouveaux utilisateurs:

command wget 'https://raw.github.com/biapy/howto.biapy.com/master/exim4/cyrus_create_mailboxes' \
--quiet --no-check-certificate --output-document='/etc/cron.hourly/cyrus_create_mailboxes'
command sed -i \
-e "s/MSQL_HOST/${MYSQL_HOST}/" \
-e "s/MSQL_DB/${MYSQL_DB}/" \
-e "s/MSQL_USERNAME/${MYSQL_USER}/" \
-e "s/MSQL_USERPWD/${MYSQL_PASSWORD}/" \
-e "s/ADMIN_LOGIN/${ADMIN_USERNAME}/" \
-e "s/ADMIN_PWD/${ADMIN_PASSWORD}/" \
'/etc/cron.hourly/cyrus_create_mailboxes'
command chmod 500 '/etc/cron.hourly/cyrus_create_mailboxes'

Augmenter le cache mémoire de la base de données

Créez la configuration de la base de données:

echo "set_cachesize 0 2097152 1
set_lg_regionmax 1048576" \
> '/var/lib/cyrus/db/DB_CONFIG'

Redémarrez Cyrus:

command test -x '/etc/init.d/cyrus2.2' && /etc/init.d/cyrus2.2 restart
command test -x '/etc/init.d/cyrus-imapd' && /etc/init.d/cyrus-imapd restart

Entretien régulier des boites mél

Le serveur Cyrus utilise des fichiers d'index (SQUAT) pour accélérer la consultation du contenu d'une boite mél. Ces fichiers SQUAT doivent être régénérés régulièrement sous peine de se corrompre et de déclencher des problèmes de fonctionnement de la boite mél (reconnaissables aux erreurs "SQUAT failed to open index file" dans le fichier /var/log/mail.log). Mettez en place un script cron régénérant toutes les 2 heures les index des boites mél Cyrus le nécessitant:

command sed -i -e 's/#[ ]*squatter_/squatter_/g' '/etc/cyrus.conf'

Rechargez la configuration:

command test -x '/etc/init.d/cyrus2.2' && /etc/init.d/cyrus2.2 restart
command test -x '/etc/init.d/cyrus-imapd' && /etc/init.d/cyrus-imapd restart

Configuration du serveur SMTP

Réception des méls

Configurez la connexion à la base de données:

command echo "
### main/02_exim4-config_mysql
#################################

# mysql auth
hide mysql_servers = ${MYSQL_HOST}/${MYSQL_DB}/${MYSQL_USER}/${MYSQL_PASSWORD}

" > '/etc/exim4/conf.d/main/02_exim4-config_mysql'

Configurez les requêtes SQL utilisées:

command wget 'https://raw.github.com/biapy/howto.biapy.com/master/exim4/02_exim4-config_mysql_queries' \
--quiet --no-check-certificate --output-document='/etc/exim4/conf.d/main/02_exim4-config_mysql_queries'

Configurez le transport de dépôt des méls dans les comptes IMAP:

command echo "
### transport/30_exim4-config_cyrus_lctp
#################################

# Use this if you want to to deliver to Cyrus mailboxes.
#
cyrus_ltcp:
  driver = smtp
  protocol = lmtp
  hosts = 127.0.0.1
  allow_localhost" \
> '/etc/exim4/conf.d/transport/30_exim4-config_cyrus_lctp'

Créez la règle de routage plaçant les méls des domaines locaux dans les compte IMAP:

command wget 'https://raw.github.com/biapy/howto.biapy.com/master/exim4/010_exim4-config_cyrus_vdom' \
--quiet --no-check-certificate --output-document='/etc/exim4/conf.d/router/010_exim4-config_cyrus_vdom'

Configurez les règles de validation des adresses mél:

command wget 'https://raw.github.com/biapy/howto.biapy.com/master/exim4/exim4_cyrus_mailbox_checks.conf' \
--quiet --no-check-certificate --output-document='/tmp/exim4_cyrus_mailbox_checks.conf'
command sed -i \
  -e '/hosts[ \t]*=[ \t]*:/r /tmp/exim4_cyrus_mailbox_checks.conf' \
  '/etc/exim4/conf.d/acl/30_exim4-config_check_rcpt'
command rm '/tmp/exim4_cyrus_mailbox_checks.conf'

Configurez le serveur SMTP pour attendre des connexions d'autres hôtes:

ETH0_IP=$(command ifconfig eth0 \
  | command grep "inet adr" \
| command sed -e 's/^.*inet adr:\([^ ]*\) .*$/\1/')
command sed -i \
-e "s/^\(dc_local_interfaces='.*\)'/\1;${ETH0_IP}'/" \
'/etc/exim4/update-exim4.conf.conf'
command update-exim4.conf

Rechargez la configuration du serveur SMTP:

/etc/init.d/exim4 restart

Pour tester votre configuration, envoyez un email à l'un de vos utilisateurs:

command echo "test" | command mail -s "e-mail de test" username@domain.com

Si votre configuration fonctionne correctement, vous trouverez un nouveau message dans la boîte aux lettres de l'utilisateur "username@domain.com"

Envoi de méls

Activez l'identification des utilisateurs basée sur la base MySQL:

command wget 'https://raw.github.com/biapy/howto.biapy.com/master/exim4/10_exim4-config_mysql' \
--quiet --no-check-certificate --output-document='/etc/exim4/conf.d/auth/10_exim4-config_mysql'

Mettez à jour la configuration d'Exim 4, et rechargez-la:

command update-exim4.conf
/etc/init.d/exim4 restart

Remarque : Si la connexion TLS échoue avec l'erreur "Base64 decoding error.", supprimez le fichier gnutls-params:

command rm '/var/spool/exim4/gnutls-params'

Contourner le blocage du port 25

De nombreux fournisseurs d'accès bloquent le port 25 (SMTP). Pour contourner ce problème, la RFC 4409 (Message Submission for Mail) a été mise en place. Cette RFC autorise l'utilisation du port 587 en complément du port 25 pour l'envoi d'emails.

Implémentez la RFC 4409 sur le serveur SMTP:

command echo '
### main/00_exim4-local_settings
#################################

# ENABLING RFC 4409
# see http://www.isi.edu/in-notes/rfc4409.txt
daemon_smtp_ports = smtp : submission

' > '/etc/exim4/conf.d/main/00_exim4-local_settings'

Rechargez la configuration:

/etc/init.d/exim4 restart

Activer le protocole SSMTP

Le protocole SSMTP est une solution alternative à l'utilisation de la mécanique TLS. Ce protocole utilise le port 465. Son utilisation n'est pas recommandée.

Configurez le serveur SMTP pour écouter sur le port 465:

command echo '
### main/00_exim4-local_settings
#################################

# ENABLING RFC 4409 and SSMTP
# see http://www.isi.edu/in-notes/rfc4409.txt
daemon_smtp_ports = smtp : submission : ssmtp

' > '/etc/exim4/conf.d/main/00_exim4-local_settings'

Forcez le SSL sur le port ssmtp :

command echo '
### main/04_exim4-ssmtp
#################################

# ENABLING SSMTP
tls_on_connect_ports = 465

' > '/etc/exim4/conf.d/main/04_exim4-ssmtp'

Recharchez la configuration:

/etc/init.d/exim4 restart

Sauvegardes

Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):

command backup-manager-tools add '/var/spool/cyrus'
command backup-manager-tools add '/var/spool/sieve'
command backup-manager-tools add '/var/lib/cyrus'

N'oubliez pas de sauvegarder la base de données (voir Installer et configurer MySQL sur Debian).

Pour aller plus loin

Diagnostiquer les problèmes du serveur Cyrus IMAP

Si vous rencontrez des problèmes pour vous connecter à votre serveur IMAP, augmentez le niveau de verbosité des fichiers journaux pour obtenir des détails supplémentaires:

if [ -e '/etc/default/cyrus2.2' ]; then
command sed -i \
-e 's/^.*\(CYRUS_VERBOSE.*\)$/\1/g' \
'/etc/default/cyrus2.2'
/etc/init.d/cyrus2.2 restart
fi
if [ -e '/etc/default/cyrus-imapd' ]; then
command sed -i \
-e 's/^.*\(CYRUS_VERBOSE.*\)$/\1/g' \
'/etc/default/cyrus-imapd'
/etc/init.d/cyrus-imapd restart
fi

Observez les messages de debug de Cyrus:

command tail -f '/var/log/mail.log'

Une fois le problème diagnostiqué, revenez à la configuration initiale:

if [ -e '/etc/default/cyrus2.2' ]; then
command sed -i \
-e 's/^\(CYRUS_VERBOSE.*\)$/#\1/g' \
'/etc/default/cyrus2.2'
/etc/init.d/cyrus2.2 restart
fi
if [ -e '/etc/default/cyrus-imapd' ]; then
command sed -i \
-e 's/^\(CYRUS_VERBOSE.*\)$/#\1/g' \
'/etc/default/cyrus-imapd'
/etc/init.d/cyrus-imapd restart
fi

Réparer une boite mail

Si une boite mail est corrompue, réparez-la avec:

command su cyrus -c "/usr/lib/cyrus/bin/reconstruct -r 'user/mon.email@domaine.fr'"

Relancez ensuite le client Mail pour retrouver un bon fonctionnement.

Corriger les erreurs "DBERROR: opening /var/lib/cyrus/deliver.db: Cannot allocate memory"

Installez les logiciels nécessaires:

command apt-get install db4.7-util

Arrêtez le serveur Cyrus:

command test -x '/etc/init.d/cyrus2.2' && /etc/init.d/cyrus2.2 stop
command test -x '/etc/init.d/cyrus-imapd' && /etc/init.d/cyrus-imapd stop

Configurez le cache mémoire de la base de données:

command echo "set_cachesize 0 2097152 1
set_lg_regionmax 1048576" \
> '/var/lib/cyrus/db/DB_CONFIG'

Sauvegardez la base de données actuelle:

command cp -a '/var/lib/cyrus/db' '/var/lib/cyrus/db.orig'

Réparez la base de données (attention, semble supprimer la base de données):

command db4.7_recover -h '/var/lib/cyrus/db'

Vérifiez la nouvelle configuration de la base de données:

command db4.7_stat -h '/var/lib/cyrus/db' -m
command db4.7_stat -h '/var/lib/cyrus/db' -l

Démarrez le serveur:

command test -x '/etc/init.d/cyrus2.2' && /etc/init.d/cyrus2.2 start
command test -x '/etc/init.d/cyrus-imapd' && /etc/init.d/cyrus-imapd start

Les messages lus redeviennent non lus

Dans certains cas, il arrive que le fichier .seen contenant les informations de lecture des emails d'un compte soit corrompu. Pour réparer ce problème, supprimez le fichier et redémarrer le serveur.

Par exemple pour un utilisateur john.doe@mon-domaine.fr :

command rm /var/lib/cyrus/domain/m/mon-domaine.fr/john^doe.seen
command test -x '/etc/init.d/cyrus2.2' && /etc/init.d/cyrus2.2 restart
command test -x '/etc/init.d/cyrus-imapd' && /etc/init.d/cyrus-imapd restart

Source : Merci à Nothinman pour sa réponse à Cyrus .seen file is corrupt - How do i repair it ?.

Restaurer des emails supprimés.

Si l'un de vos utilisateur a supprimé des emails par mégarde, restaurez-les à partir de la sauvegarde créée par Backup Manager. Les emails sont sauvegardés dans l'arborescence /var/spool/cyrus. Voici les étapes à suivre :

  1. Décompresser tout ou partie de la dernière sauvegarde /var/archives/cyrus-var-spool-cyrus.date.master.tar.bz2.
  2. Créez à nouveau les dossiers supprimés dans votre client mail habituel.
  3. Copiez le contenu des dossiers à restaurer vers le dossier adéquat de l'arborescence /var/spool/cyrus.
  4. Changez le propriétaire des fichiers copiés :
    chown -R cyrus:mail /var/spool/cyrus/mail/
  5. Vos emails devrait être restaurés.

Remarque : Une autre possiblité est l'usage de la commande cyrreconstruct, mais je n'ai pas réussi à la faire fonctionner.

Synchronisation de 2 comptes Imap

Installez l'outil de synchronisation:

command apt-get install imapsync

Synchronisez deux comptes mél (pour changement de serveur par exemple) grâce à:

command imapsync --syncinternaldates --subscribe \
--host1 "imap.domain.com" --port1 993 --ssl1 --authmech1 PLAIN \
--user1 "some-user" --password1 "some-password" \
--host2 "localhost" --port2 143 --authmech2 CRAM-MD5 \
--user2 "local-user" --password2 "local-password"

Centralisation des comptes méls

Si vous disposez de plusieurs comptes méls, fetchmail permet de les centraliser.

Installez l'outil:

command apt-get install fetchmail

Créez le fichier /etc/fetchmailrc contenant les configurations des comptes à rappatrier. Voici un exemple de configuration:

set daemon 300
set no bouncemail

poll pop.mail.yahoo.fr with protocol POP3
user "my-user" there with password "my-password" is "my-imap-account@my-email-domain.com" fetchall

poll pop.free.fr with protocol POP3
user "my-user" there with password "my-password" is "my-imap-account@my-email-domain.com" fetchall
user "my-other-user" there with password "my-other-password" is "my-imap-account@my-email-domain.com" fetchall

Activez le démon de récupération du courrier:

command sed -i \
-e 's/START_DAEMON=.*/START_DAEMON=yes/' \
'/etc/default/fetchmail'

Rechargez la configuration:

/etc/init.d/fetchmail restart

Supprimer une boite mél

Pour supprimer une boite mél de votre serveur, il faut explicitement supprimer les fichiers de la boite mél sur le serveur Cyrus.

Récuperez les paramètres de connexion à l'outil d'administration de Cyrus:

CYRUS_ADMIN_USERNAME=$(command grep "^CYRUS_ADMIN_USERNAME" '/etc/cron.hourly/cyrus_create_mailboxes' \
  | command cut --characters=22-)
CYRUS_ADMIN_PASSWORD=$(command grep "^CYRUS_ADMIN_PASSWORD" '/etc/cron.hourly/cyrus_create_mailboxes' \
  | command cut --characters=22-)

Lancez l'outil d'administration de Cyrus:

command cyradm --server localhost \
--user "${CYRUS_ADMIN_USERNAME}" \
--password "${CYRUS_ADMIN_PASSWORD}" \
--auth DIGEST-MD5

Obtenez la liste des commandes:

help

Listez les boites méls présentes sur le serveur:

listmailbox

Supprimez une boite mél:

deletemailbox user/adresse.email@mon-domaine.com

Remarque : Si cette commande vous affiche l'erreur "permission denied", modifiez les droits d'accés (acl) pour donner à l'utilisateur cyrus la permission de supprimer cette boite mail:

setaclmailbox user/adresse.email@mon-domaine.com cyrus c
deletemailbox user/adresse.email@mon-domaine.com

Quittez l'outil d'administration de Cyrus:

exit

Source : Informez-vous sur les opérations de maintenance d'un serveur de courrier Cyrus en lisant la page Maintenance du howto Cyrus IMAP.

Thunderbird en IMAP avec TLS et Kaspersky Antivirus est installée.

Si vous utilisez la suite Kaspersky Anti-virus, et que le certificat SSL de votre serveur IMAP n'est pas signé par une autorité de certification reconnue, vous ne pourrez pas vous connecter à moins de désactiver le filtrage du protocole IMAP dans les paramètres réseaux avancés de Kaspersky. Une photo d'écran de l'endroit ou il faut faire cela est disponible à cette adresse (en allemand) :

KIS 2009 und IMAP m. Thunderbird

Remerciements