Installer le serveur IMAP Cyrus sur Debian
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:
- un serveur SMTP Exim 4, comme décrit par Configurer Exim 4 sur Debian.
- un serveur MySQL, comme décrit par Installer et configurer MySQL sur Debian.
- l'outil mysql-tools d'administration simplifiée de MySQL sur l'hôte local (et l'hôte du serveur MySQL, si différent).
Ce guide recommande:
- la configuration de
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 :
- Décompresser tout ou partie de la dernière sauvegarde /var/archives/cyrus-var-spool-cyrus.date.master.tar.bz2.
- Créez à nouveau les dossiers supprimés dans votre client mail habituel.
- Copiez le contenu des dossiers à restaurer vers le dossier adéquat de l'arborescence /var/spool/cyrus.
- Changez le propriétaire des fichiers copiés :
chown -R cyrus:mail /var/spool/cyrus/mail/
- 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
- Merci aux auteurs du guide ISP-style Email Server with Debian-Etch and Postfix 2.3.
- Merci à flash42 sur irc.freenode.net#sed pour son aide.
- Merci à l'auteur du guide ISP Mail Server mit Exim 4, Dovecot, MySQL und SpamAssassin auf Debian GNU/Linux etch.
- Merci à l'auteur du guide Mail server HOWTO - Postfix and Dovecot with MySQL and TLS/SSL, Postgrey and DSPAM
- Merci à l'auteur du guide Building a fully fledged mail server with Exim, Cyrus-IMAP, SASL, TLS, MySQL and Debian
- Merci aux auteurs de la page Cyrus Imap sur le Wiki Exim.
- Merci aux auteurs de la page Authenticated Smtp Using Mysql sur le Wiki Exim.
- Merci à l'auteur de l'article Howto setup a Virtual Mail System with Exim, MySQL, SpamAssassin, ClamAV and Dovecot.
- Merci à Jopa pour son article Installation d’un serveur mail brique par brique… (OpenLDAP, Postfix, Cyrus-imap, TLS, SASL, Spamassassin, Amavis, etc…).
- Merci à Artisan Numérique pour Architecture Domestique - Le stockage centralisé du courrier avec IMAP.
- Merci à Uggy pour OfflineIMAP - Synchronisation Imap/Maildir.
- Merci à Cristian Mitrana pour sa réponse au message Regarding dot in username.
- Merci à Wil Cooley pour son howto Cyrus IMAP.
- Merci à Lee Maguire pour Quick setup for Exim4 TLS/SMTP-AUTH.
- Merci à hswong3i pour Exim4 + Courier + SSL on Debian etch mini-HOWTO.
- Merci à System Administration pour Cyrus-IMAP Logging region out of memory thing.