Gérer le mail avec Unix

Avec postfix, dovecot et fetchmail, on peut gérer le mail pour un ou plusieurs noms de domaine, créer des alias, utiliser des tags (utilisateur+tag@domaine.tld), regrouper les mails venant de plusieurs hébergeurs sur un seul compte… entre autres.

Ce tutoriel est tenu à jour régulièrement. Dernière révision : 29 août 2014.

Les commandes préfixées d’un # sont à lancer en root. Les commandes préfixées d’un % sont à lancer en simple utilisateur.

Mise en place de Postfix

Installation

Par défaut sur une machine Debian on trouve Exim, qu’il va supprimer si on veut installer un autre MTA. Je vous suggère de purger le paquet, puisque vous n’en aurez plus besoin.

# apt-get purge exim
# apt-get install postfix procmail

Configuration de base

Un serveur de mail est utile sur une machine Linux même si celle-çi n’a pas une vocation de serveur mail, ou même si elle n’est pas connectée à Internet. En effet, des outils systèmes comme cron, at ou encore des outils de sécurité comme tiger ou snort sont configurés, ou peuvent être configurés, pour envoyer des mails à l’administrateur système afin de l’informer du résultat de leur exécution. Pour une utilisation locale, vous n’aurez pas besoin des sections « Gestion du mail pour un nom de domaine » et « Éviter le spam ».

Vous pouvez vous baser sur le fichier de configuration généré par debconf selon les réponses que vous avez faites lors de l’installation. Si Postfix était déjà installé lorsque vous vous êtes lancé dans sa configuration, vous pouvez le reconfigurer.

# dpkg-reconfigure postfix

Si vous voulez le configurer entièrement à la main, vous pouvez commencer par copier le fichier de configuration type fourni par le mainteneur du paquet, pour l’adapter à vos besoins :

# cd /etc/postfix/
# mv main.cf main.cf.original_debian
# cp /usr/share/postfix/main.cf.dist main.cf

On va ensuite éditer ce fichier /etc/postfix/main.cf sur lequel repose la majeure partie de la configuration de Postfix. Les paramètres y ressemblent à des variables shell, avec une notation $variable.

On spécifie le nom de la machine. J’ai mis un basique « mx » pour éviter de donner des informations sur la topologie de mon réseau local.

myhostname = mx

Postfix signale les problèmes à l’alias postmaster. Vous pouvez ne pas être intéressé par tous les types d’événements, aussi ceci est configurable. La valeur par défaut signale seulement les problèmes sérieux (ressource et logiciel) au postmaster, mais il est possible d’obtenir plus de détails.

notify_classes = resource, software
notify_classes = resource,software,bounce,delay,policy

On peut indiquer un programme externe pour délivrer les messages vers les boîtes mail des utilisateurs. Les utilisateurs qui souhaitent bénéficier des possibilités offertes par procmail le feront via leur ~/.procmailrc (par exemple, filtrer les mails pour éviter les spams). Les utilisateurs qui ne mettront pas de ~/.procmailrc auront leurs mails délivrés directement.

mailbox_command = /usr/bin/procmail -a "$EXTENSION"

On renseigne quelques paramètres et on commente ce qui n’est pas essentiel :

sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
#html_directory =
#manpage_directory =
#sample_directory =
readme_directory = no

Quand quelqu’un se trompe d’adresse, autant le lui signaler directement plutôt que de lui faire perdre du temps (et consommer inutilement des ressources).

soft_bounce = no

Le paramètre biff spécifie si le système doit notifier ou non les utilisateurs en cas de nouveau mail (« You have new mail » dans votre terminal).

biff = no

On spécifie le protocole par defaut utlisé pour délivrer les messages.

default_transport = smtp

Pour éviter de diffuser le programme utilisé, sa version ou la distribution.

smtpd_banner = ESMTP mail server

La limite en nombre de processus.

default_process_limit = 10

Le nombre de messages délivrés simultanement en local.

local_destination_concurrency_limit = 2

Le nombre de messages délivrés simultanement aux autres.

default_destination_concurrency_limit = 10

La taille maximal d’une mailbox (0 = pas de limite).

mailbox_size_limit = 0

La taille minimum d’espace sur le disque pour accepter les messages (ici 30 Mo).

queue_minfree = 31457280

La taille maximum des messages acceptés (ici 20 Mo).

message_size_limit = 20971520

Alias

On va utiliser le fichier /etc/aliases pour rediriger le mail de certains utilisateurs vers d’autres :

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

Il est souhaitable de paramétrer au minimum un alias pour postmaster pointant vers le nom d’un utilisateur. Cet alias doit exister pour que les gens puissent vous signaler des problèmes de distribution de courrier. Vérifiez que vous redirigez également le courrier du super-utilisateur. Voilà la syntaxe de ce fichier :

# utilisateur_origine: utilisateur_destination
mailer-daemon: utilisateur_destination
postmaster: utilisateur_destination
root: utilisateur_destination

Après toute modification de /etc/aliases, lancez la commande suivante :

# newaliases

Gestion du mail pour un nom de domaine

Pour gérer le mail d’un nom de domaine, il faut que la machine soit désignée MX par le serveur DNS : voir à ce sujet le billet sur BIND. Il faudra aussi penser à configurer votre firewall pour qu’il laisse tout le monde accéder au port 25.

Le paramètre $mydomain indique le nom de domaine pour lequel notre serveur gère le mail.

mydomain = almic.tf

Le paramètre $myorigin indique le domaine qui apparaît dans le courrier envoyé à partir de cette machine.

myorigin = $myhostname

Le paramètre $mydestination indique les domaines pour lesquels cette machine reçoit les mails (au lieu de le relayer). Si plusieurs domaines sont indiqués, les mails envoyés à utilisateur@domain2.tld et utilisateur@domain3.tld seront destinés à la même boîte aux lettres.

mydestination = localhost, server_hostname, $myhostname, $mydomain, domain2.tld, domain3.tld

Postfix relaie le courrier des clients des réseaux et des domaines autorisés, définis par le paramètre $mynetworks.

mynetworks = 127.0.0.0/8, 192.168.0.0/16, [::ffff:127.0.0.0]/104, [::1]/128

Postfix relaie le courrier étranger, c’est-à-dire le courrier qui n’est pas directement adressé à un domaine contenu dans $mydestination. Les domaines d’origine autorisés sont définis grâce à $relay_domains. C’est le point sensible qui peut transformer un serveur mail en relai pour les spams.

relay_domains = $mynetworks

Par défaut, Postfix délivre le courrier directement sur Internet. Suivant votre environnement, ce n’est pas toujours souhaitable. Par exemple, certains fournisseurs d’accès (comme AOL) posent des problèmes pour envoyer du courrier vers leurs abonnés à partir de serveurs personnels. Il est possible d’indiquer à Postfix de passer par un relai, en général le serveur SMTP de votre fournisseur d’accès. L’utilisation des « [] » évite la consultation des champs MX du DNS.

relayhost = [smtp.free.fr]

On va nettoyer certaines en-têtes pour éviter de donner des infos inutiles sur la configuration de notre réseau. De plus, la multiplication des transferts augmente la probabilité qu’un mail soit perçu comme du spam. Autant ne faire apparaître qu’un seul transfert, entre notre postfix et celui du FAI. Dans /etc/postfix/main.cf :

header_checks = regexp:/etc/postfix/header_checks

Dans /etc/postfix/header_checks :

/^Received: from client_hostname.local_network/ IGNORE

Gérer des domaines supplémentaires au moyen d’alias

En plus des domaines listés dans $mydestination, postfix peut accepter les mails pour d’autres domaines. Chaque adresse d’un domaine hébergé de cette manière est un alias d’un compte unix ou d’une adresse extérieure.

virtual_alias_domains = autredomaine.fr
virtual_alias_maps = hash:/etc/postfix/virtual

On crée le fichier /etc/postfix/virtual.

### Domaine virtuel autredomaine.fr

username@autredomaine.fr       almic

abuse@autredomaine.fr          root
webmaster@autredomaine.fr      root
postmaster@autredomaine.fr     root
hostmaster@autredomaine.fr     root
operator@autredomaine.fr       root
admin@autredomaine.fr          root
security@autredomaine.fr       root
spam@autredomaine.fr           root
root@autredomaine.fr           almic
www-data@autredomaine.fr       almic
mailer-daemon@autredomaine.fr  almic

bidule@autredomaine.fr         bidule@machin.com

# Décommentez l'entrée suivante pour implémenter une adresse de collecte.
# Ce n'est pas sans risque. Les spammers essaient d'envoyer du courrier
# semblant venir et à destination de n'importe quel nom possible. Une 
# adresse de collecte est susceptible de recevoir de nombreux messages de
# spam ou de notification de messages envoyés avec une adresse        
# n-importe-quoi@exemple.com. 
#@autredomaine.fr              almic

Après toute modification du fichier /etc/postfix/virtual, il faut lancer cette commande :

postmap /etc/postfix/virtual

Une fois que tout est en place :

# service postfix reload

Premiers contrôles contre le spam

On veut accepter le courrier extérieur à destination de « utilisateur@exemple.fr », mais pas à destination de « utilisateur@machin.exemple.fr » :

parent_domain_matches_subdomains = debug_peer_list smtpd_access_maps

On désactive certaines techniques utilisées pour obtenir des adresses mail valides sur le serveur :

disable_vrfy_command = yes

Les spammeurs ne respectent rien, pas même les RFC. Du coup, on peut commencer à les filtrer en rejettant les comportements non conforme à la norme. Par exemple, on fixera une pause d’une seconde en début de connection : si le serveur en face ne la respecte pas, ça signifie qu’il a été écrit pour utiliser abusivement la canalisation des commandes SMTP, afin d’accélérer ses livraisons. On rejettera aussi les mails provenant de serveurs tournant sur une IP sans DNS associé.

smtpd_helo_required = yes
strict_rfc821_envelopes = yes
smtpd_client_restrictions =
    permit_mynetworks,
    # À décommenter pour SASL
    #permit_sasl_authenticated,
    reject_invalid_hostname,
    reject_unknown_sender_domain,
    reject_unknown_recipient_domain,
    reject_non_fqdn_recipient,
    reject_unauth_pipelining,
    reject_unauth_destination,
    permit

La ligne « permit_sasl_authenticated » ne doit être ajoutée que si vous comptez envoyer des mails à partir de n’importe quelle IP, après vous être identifié. Voyons ça plus en détail.

Utiliser son serveur SMTP pour l’envoi des mails, où que l’on soit

Pour ne pas avoir à changer la configuration du client mail quand on n’est pas sur le réseau local, on peut utiliser SASL. Dans /etc/postfix/main on décommente la ligne smtpd_sasl_auth_enable = yes, et on ajoute :

# TLS
smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

Ensuite on installe SASL.
# apt-get install sasl2-bin libsasl2-modules

On ajoute l’utilisateur postfix au groupe sasl.
# adduser postfix sasl

On édite /etc/default/saslauthd.
START=yes
MECHANISMS="rimap"
MECH_OPTIONS="localhost"
THREADS=0
OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"

Si vous avez sorti postfix de son chroot, il faut mettre /var/run/saslauthd.

On crée le répertoire :
mkdir -p /var/spool/postfix/var/run/saslauthd

On crée /etc/postfix/sasl/smtpd.conf.
pwcheck_method: saslauthd
mech_list: plain login

Une fois Courier configuré (voir plus bas), vous pourrez tester la configuration de sasl avec cette commande :

# testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -u USER -p PASS

Vérifications et tests

Tant que la sortie de :

# service postfix check

vous renvoie quelque chose, jetez-y un coup d’œil. Ensuite, relancez Postfix :

# service postfix restart

Pendant les tests, il est souhaitable d’activer le maximum de choses dans $notify_classes. Tant que vous avez quelque chose de ce genre dans /var/log/mail.*, votre serveur mail n’est pas en état de marche :

Oct 9 13:16:32 hostname postfix/master[8717]: warning: process /usr/lib/postfix /smtpd pid 8880 exit status 1
Oct 9 13:16:32 hostname postfix/master[8717]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling

Une fois que Postfix s’est lancé correctement, vous pouvez essayer de vous envoyer un mail en local, puis vers un autre nom de domaine, puis à partir d’un autre nom de domaine vers votre serveur mail.

Regrouper les mails de plusieurs hébergeurs

Fetchmail permet d’aller chercher les mails de plusieurs adresses différentes, venant de plusieurs hébergeurs différents, et de tout centraliser vers une seule adresse.

On commence par installer les outils nécessaires :
# apt-get install fetchmail cron anacron logrotate

Ensuite on édite le fichier ~/.fetchmailrc.

poll pop.FAI1.fr protocol POP3
username USER
password PASS

poll pop.FAI2.com protocol POP3
username USER
password PASS

poll pop.MAIL3.org protocol POP3 port 995
username USER
password PASS
ssl

Pour protéger vos mots de passe, il faut chmod ce fichier.

% chmod 600 ~/.fetchmailrc

Sinon fetchmail refusera de se lancer. Par ailleurs, vérifiez que le nom d’hôte de votre machine est renseigné dans /etc/hosts.

Lancez ensuite en simple utilisateur :

% crontab -e

pour rajouter ces lignes :

*/5 * * * * fetchmail -t 120 -m procmail >> ~/.log-fetchmail 2>> ~/.log-fetchmail
*/15 * * * * sh ~/scripts/faux_posneg >/dev/null 2>/dev/null
5 0 * * * /usr/sbin/logrotate -s ~/.logrotate.status ~/.logrotate.conf

Cron envoie par mail toute sortie, standart ou sterr. Si vous voulez complétement éviter les mails, rajoutez cette ligne au début de votre crontab.

MAILTO = ""

Nettoyage des logs

Bien qu’utiles, les logs finissent par devenir encombrants. Afin de limiter l’espace disque occupé, on va limiter la taille des fichiers de log que nous avons créés. Comme vous avez pu l’apercevoir dans la crontab, on fait appel à logrotate pour régler ce problème. Il se configure en créant un fichier de paramètres, qui indique la taille maximale et les niveaux de sauvegardes. Dès que le log dépasse la limite fixée, logrotate le déplace en sauvegarde, décale d’un cran les autres sauvegardes et supprime la dernière.

Créez ~/.logrotate.conf.

/home/almic/.log-fetchmail {
    rotate 2
    size=50k
}

/home/almic/.log-procmail {
    rotate 2
    size=100k
}

Installer un serveur POP/IMAP

Je suis passé à dovecot, après avoir eu trop d’ennuis avec courier. On l’installe avec cette commande :

apt-get install dovecot-pop3d dovecot-imapd

Fichier /etc/dovecot/conf.d/10-ssl.conf.

ssl = required

Fichier /etc/dovecot/conf.d/10-mail.conf.

mail_location = maildir:~/mail

Fichier /etc/dovecot/conf.d/10-logging.conf.

log_path = /var/log/dovecot.log

Si vous voulez accéder à dovecot en dehors du réseau local, ouvrez ou faîtes suivre les ports 110 et 143.

Lutter contre le spam

SpamAssassin et Bogofilter

On va indiquer à procmail de filtrer les mails avec SpamAssassin et Bogofilter. Ils ajouteront des en-têtes au mail qui permettront au logiciel de mail utilisé de les trier par dossier. On utilisera aussi formail pour reformater correctement les mails. On commence par installer :

# apt-get install bogofilter spamassassin razor

Éditez ensuite /etc/default/spamassassin pour positionner « ENABLED » sur 1. Puis rendez-vous sur ce générateur afin de créer un fichier de configuration pour SpamAssassin. Vous placerez le résultat dans ~/.spamassassin/user_prefs, chez moi ça a donné ça :

# SpamAssassin config file for version 3.x
# Generated by http://www.yrex.com/spam/spamconfig.php (version 1.50)

# How many hits before a message is considered spam.
required_score          5.0

# Encapsulate spam in an attachment (0=no, 1=yes, 2=safe)
report_safe             0

# Enable the Bayes system
use_bayes               1

# Enable Bayes auto-learning
bayes_auto_learn        1

# Score minimal pour apprendre que le message est un spam : 10
# Score maximal pour apprendre que le message n'est pas un spam : -5.0

# Enable or disable network checks
skip_rbl_checks         0
use_razor2              1
use_pyzor               0

# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales              en

# exemple de score pour une règle
#score SUBJECT_DRUG_GAP_C 3.0

Dans ~/.spamassassin/razor-agent.conf mettez

razorhome = ~/.razor

Une fois que la configuration est terminée :

service spamassassin start

Pour tester que votre configuration de SpamAssassin est bonne, la sortie de la commande suivante doit être nulle :

% spamassassin --lint

Apprentissage

Afin d’augmenter la pertinence de SpamAssassin et de Bogofilter, il faut leur donner à manger à la fois des spams et du courrier légitime. Commencez par les regrouper dans deux fichiers.

Pour SpamAssassin.

% sa-learn --spam --mbox spam
% sa-learn --ham --mbox ham

Pour Bogofilter.

% bogofilter -MBvts spam
% bogofilter -MBvtn ham

Pour gérer les faux positifs et négatifs, on crée ce script ~/scripts/faux_posneg.sh :

#!/bin/sh

cd ~/Maildir/.Faux_positifs/cur/
for i in `ls`
do
  bogofilter -Bvtn $i
  sa-learn --ham $i
  mv $i ~/Maildir/cur/
done
 
cd ~/Maildir/.Faux_negatifs/cur/
for i in `ls`
do
  bogofilter -Bvts $i
  sa-learn --spam $i
  mv $i ~/Maildir/.Spams/cur/
done

Ainsi si un mail licite est classé comme spam, il vous suffira de le mettre dans le répertoire Faux_positifs (via IMAP) et ce script se chargera d’apprendre à SpamAssassin et/ou Bogofilter qu’ils se sont trompés, puis il le placera dans la boîte de réception. Les faux négatifs iront dans le dossier de même nom.

Procmail

On édite ~/.procmailrc.

SHELL=/bin/sh
MAILDIR=$HOME/Maildir
LOGFILE=$HOME/.log-procmail
VERBOSE=yes

# On reformate les mails correctement, notamment le champ from initial
#
:0f
| formail

# On soumet à l'analyse de spamassassin, en prenant soin
# de nettoyer les spams analysés des précédentes traces d'analyse.
# On ne traite que les messages inférieurs à 250 kB car la majeure
# partie des spams ne sont pas plus volumineux et travailler sur de
# gros messages peut rendre spamassassin gourmand en ressources.
#
:0fw
* < 256000
| spamassassin -d | spamassassin

# Si spamassassin se plante en cours de route, le mail
# qu'il traitait ne sera pas perdu. Il arrivera dans DEFAULT.
#
:0e
{
    exitcode=$?
}

# On passe par bogofilter
# -p)assthrough -u)pdate, -l)og -e)xitcode 0 for spam and ham
# -v)erbose
#
:0fw
| bogofilter -p -u -l -e -v

# On récupère aussi les erreurs de Bogofilter.
# Better put this after _EACH_ delivering recipe (not shown here).
# Later, the MTA will try again to deliver it.
# 75 is the value for EX_TEMPFAIL in /usr/include/sysexits.h
#
:0e
{
    EXITCODE=75
    HOST
}

# Work around procmail bug: any output on stderr will cause the "F" in "From"
# to be dropped. This will re-add it.
:0
* ^^rom[ ]
{
  LOG="*** Dropped F off From_ header! Fixing up. "

  :0 fhw
  | sed -e '1s/^/F/'
}
# Le courrier marqué comme spam par SpamAssassin
#
:0:
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
.Spams/

# Le courrier marqué comme spam par Bogofilter
#
:0:
* ^X-Bogosity: (Spam|Yes)
.Spams/

# put copy error catcher here to avoid fallthrough

# Le courrier marqué comme spam possible par SpamAssassin
#
:0:
* ^X-Spam-Status: Yes
.Suspects/

# Le courrier marqué comme spam possible par Bogofilter
#
:0:
* ^X-Bogosity: Unsure
.Suspects/

# Le reste du courrier est considéré comme licite
#
:0:
$MAILDIR/

Vous devriez maintenant trouver de nouveaux en-têtes relatifs au spam dans vos mails.

Installer un webmail

Un webmail est un client IMAP accessible par le web. J'ai choisi IMP, basé sur le framework Horde, qui permettra d'utiliser également le carnet d'adresse Turba et le gestionnaire de signets Trean.

Apache et php

Cette partie suppose que vous avez un apache fonctionnel. Malheureusement, on ne peut avoir qu'un seul hôte https par IP, mais cela est en train de changer avec des choses comme SNI.

On active le mod_ssl d'apache :

# a2enmod ssl

Ensuite on crée le fichier /etc/apache2/sites-enabled/horde.domain.tld.

< VirtualHost *:443 >
  ServerName horde.domain.tld
  ServerAdmin postmaster@domain.tld
  ServerSignature Off
  SSLEngine on
  SSLCertificateFile /etc/ssl/private/horde.pem
  DocumentRoot /srv/www/horde/
  < Directory />
    Options SymLinksIfOwnerMatch MultiViews
    AllowOverride None
  < /Directory >
  ErrorLog /var/log/apache2/horde-error.log
  LogLevel warn
  CustomLog /var/log/apache2/horde-access.log combined
< /VirtualHost >

On crée notre certificat.

# openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/ssl/private/horde.pem -out /etc/ssl/private/horde.pem

On relance apache :

# service apache2 restart

Ensuite on s’assure que l’installation de PHP est suffisante.

# apt-get install php5-gd php5-imap php5-ldap php5-mysql php-pear php-log php-db php-net-socket php-mail php-mail-mime php-http-request php5-memcache

Horde et compagnie

Téléchargez puis décompressez le fichier horde-X.Y.Z.tar.gz pour placer les fichiers obtenus dans /srv/www/horde. Procédez de même avec IMP et Turba, en plaçant les fichiers respectivement dans /srv/www/horde/imp/ et dans /srv/www/horde/turba/.

Trean n'étant pas encore finalisé, il n'est accessible que via les snapshots CVS. Placez dans un sous-répertoire comme les autres. Il faut aussi l'activer : éditez le fichier /srv/www/horde/config/registry.php, faîtes une recherche sur « trean » et modifiez la ligne « status » :

'status' => 'active',

Ouvrez ensuite l'URI https://horde.serveur.tld/test.php pour vérifier que votre installation de PHP comporte tous les éléments nécessaire à Horde.

Par défaut, Horde semble s'attendre à être placé dans un sous-répertoire « horde3 » à la racine du site. Pour éviter des grognements du style :

[Sat Oct 21 23:13:16 2006] [error] [client 192.168.111.254] File does not exist: /srv/www/horde/horde3

On exécutera cette commande après s'être placé dans /srv/www/horde :

# ln -s . horde3

Par mesure de sécurité :

# chown -R root:root /srv/www/horde

Pour pouvoir accéder à la configuration via le navigateur :

# chown -R www-data.www-data /srv/www/horde/config /srv/www/horde/imp/config /srv/www/horde/turba/config /srv/www/horde/trean/config

Dans le paquet debian horde3, vous trouverez un fichier SQL. Importez-le dans MySQL et créez un utilisateur pour Horde.

La majeure partie du reste de la configuration va s'effectuer par le biais de votre navigateur, à l'adresse « https://horde.serveur.tld ». Notez que si vous n'avez pas de serveur IMAP fonctionnel, horde ne fonctionnera pas.

Pour les paramètres essentiels, ensuite dans « Administration > Configuration > Configuring Horde ». Dans la section « Database », spécifiez qu'on va utiliser MySQL, et entrez les infos de connection. Sélectionnez UTF-8 comme encodage. Dans la section « Authentification », entrez le ou les utilisateur(s) qui seront administrateurs. Puis sélectionnez « IMAP authentification » comme méthode d'identification, pour « Configuration type » entrez « Separate values ». Choisissez le port 143 et le protocole « imap/tls/novalidate-cert ».

Si quelque chose se passe mal et que vous voulez revenir en connexion automatique, écrasez /srv/www/horde/config/conf.php par sa sauvegarde et rechargez « https://horde.serveur.tld ».

Éditez ensuite /srv/www/horde/imp/config/servers.php.

$servers['imap'] = array(
    'name' => 'IMAP Server',
    'server' => 'localhost',
    'hordeauth' => true,
    'protocol' => 'imap/ssl/novalidate-cert',
    'port' => 143,
    'maildomain' => 'almic.tf',
    'smtphost' => 'mx.almic.tf',
    'smtpport' => 25,
    'realm' => '',
    'preferred' => '',
);

On utilise SSL car la sarge n'a que PHP4, or il faut PHP 5.1 pour utiliser TLS.

Pour Turba, il faut importer dans MySQL /srv/www/horde/turba/scripts/sql/turba_objects.mysql.sql.

Faites ensuite le tour de la configuration d'Horde, d'IMP, de Turba et de votre ou vos compte(s) utilisateur(s) pour les adapter à vos besoins.

Remerciements et liens

Pour la partie Postfix, la traduction française de la doc m'a beaucoup aidé, en particulier la liste de tous les paramètres du fichier de configuration.

Si vous voulez appronfondir l'aspect anti-spam, rendez-vous sur cette page.

Enfin, vous trouverez ici plus de détails sur la syntaxe de Procmail.

 

3 Comments

  1. Luc dit :

    Merci pour ce tuto !

  2. fabrice dit :

    Très bon article et plein d’informations intéressantes.
    Merci

  3. Nico dit :

    Article intéressant, on peut y apprendre certaines choses sympa.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *