Dans cet article je vais tenter d'expliquer comment installer un serveur de mail. Dans un autre article je parlerai de comment installer un filtre anti-spam (spamassassin).
Je base ce tutorial sur ma propre expérience et grâce à de nombreuses recherches sur le net. Tout au long de mon explication, je donnerai des informations sur les points où je suis resté bloqué.
Voila tout d'abord une brève présentation des différents composants :
Installation des composants (sous debian):
apt-get update apt-get install postfix fetchmail procmail uw-imapd openwebmail gotmail hotway
Pendant cette installation, des questions relatives à la configuration des composants vont être posées. Reportez vous à la section suivante (Configuration) pour une explication des paramètres.
Une fois les composants installés il faut les configurer. Une partie de la configuration va être effectué pendant l'installation des packages mais certains paramètres devront être ajustés apres la configuration que debian a généré.
Au moment de l'installation du package plusieurs questions sont posées :
Type de configuration, choisissez Site
Internet pour pouvoir gérer vous même l'envoie et la réception de
vos messages par SMTPÀ qui envoyer le courrier pour root ?, moi je met mon
compte kerphi (pour effectuer d'autres redirection, reportez
vous à la section parlant des alliases un peu plus bas)Nom de courrier, c'est la partie droite de votre adresse
email, chez moi c'est zeitoun.netFaut-il ajouter .domaine aux adresses simples ?, répondez
NonPour quelles autres destinations accepter le courrier ?,
c'est la liste des domaines a accepter, pour moi c'est :
$myhostname, $mydomain, localhost.$mydomain, localhost.localdomain,
localhost, kwikwi.net (cette liste peut être édité plus loin dans
le fichier de configuration)Forcer des mises à jour synchronisées de la file d'attente des
courriels ?, laissez l'option par défaut OuiLa configuration de postfix se situe en grande partie dans le fichier
/etc/postfix/main.cf. Pour que postfix prenne en compte les
modifications faites dans ce fichier, tapez /etc/init.d/postfix
reload
Dans ce fichier les lignes suivantes sont importantes :
myhostname = mail.zeitoun.net mydomain = zeitoun.net myorigin = $mydomain mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost.localdomain, localhost, kwikwi.net mynetworks = 192.168.0.0/24, 127.0.0.0/8
Le premier paramètre indique l'adresse de votre serveur de mail vue de l'internet (ce nom de domaine doit exister sur internet), il doit être enregistré comme serveur de mail dans le serveur DNS de votre nom de domaine. (je ne suis pas un spécialiste des mails alors peutetre que je me trompe ici)
Le paramètre myorigin indique quel sufixe utiliser pour
envoyer vos mails (le fichier /etc/mailname doit contenir votre
domaine, pour moi zeitoun.net). C'est ce qui remplacera
zeitoun.net dans les adresses du genre
...@zeitoun.net.
Le parmètre mydestination spécifie quels nom de domaines sont
acceptés pour la réception de mails. Exemple : toto@zeitoun.net
sera traité, toto@hostbidonégalement, mais toto@bidule ne
sera pas traité car le nom de domaine bidule n'est pas dans la
liste.
Bien entendu les noms de domaines doivent exister et pointer vers votre
machine qui gère les mails. Dans mon exemple zeitoun.net existe
sur internet mais pas hostbidon qui n'existe qu'en local, on
pourra donc m'envoyer des mails depuis l'exterieur seulement avec une adresse
mail se terminant par @zeitoun.net.
Le second paramètre (mynetworks) donne la liste des réseaux
qui peuvent envoyer des mails en passant par cette machine.
Dans mon exemple, seulement la machine qui gère les mails
(127.0.0.1) et mon réseau local (192.168.0.XXX)
pourra envoyer des mails. Ceci permet d'éviter que mon serveur soit utilisé
comme relais pour le spam.
Si vous voulez configurer des aliases, ca se passe dans le fichier
/etc/aliases. Les aliases permettent de transmettre les mails
d'un utilisateur virtuel (ou reel) vers un utilisateur reel, par exemple si
je veux que les mails stephane.gully@zeitoun.net arrivent sur
mon compte kerphi@zeitoun.net alors je rajoute la ligne suivante
dans le fichier d'aliasses : stephane.gully: kerphi puis je
lance la commande postalias /etc/aliases qui permet de mettre a
jour la base de donnée des aliases dans postfix.
J'ai rencontré un problème qui m'a bloqué pendant un certain temps lors de
l'installation de mon serveur de mail, je pouvais envoyer des mails mais pas
en recevoir. Dans les log (/var/log/mail.log) il y avait une
erreur de ce type : localhost postfix/smtp[17656]: B1CB2BDC089:
to=kerphi@zeitoun.net, orig_to=kerphi, relay=none, delay=0, status=bounced (
mail for zeitoun.net loops back to myself). Je l'ai résolue en
changeant mon myhostname = zeitoun.net par myhostname =
mail.zeitoun.net. Je n'ai pas trés bien compris pourquoi cette erreur
est survenue mais maintenant ca marche ...
Pour une configuration plus conviviale, je conseil l'installation de
webmin-postfix (apt-get install webmin-postfix) qui permet de
configurer postfix en passant par une interface web sympatique.
Procmail permet de trier ses mails. Par exemple on peut facilement déplacer tous les mails ayant dans le sujet le mot "Viagra" dans un répertoire "spam". Procmail est aussi une bonne solution pour organiser les mails venant de plusieurs mailing listes dans des répertoires séparés.
La configuration de procmail est spécifique à chaque utilisateur. Il
suffit de créer un fichier nommé .procmailrc dans le homedir de
l'utilisateur. Puis de rajouter ceci dedant :
PATH=/bin:/usr/bin MAILDIR=$HOME/Maildir SPAMBOX=spam :0 # Sont visés tous les mails dont le sujet contient Viagra * ^Subject: .*Viagra.* # Et on les envoie à la poubelle à spam $SPAMBOX
fetchmail permet de rapatrier des mails depuis d'autres boites mails. J'utilise fetchmail pour récupérer mes mails sur le serveur pop3 de tiscali.
Pour rapatrier des mails depuis une boite mail pop3, voici comment
configurer fetchmail. Il faut simplement créer un fichier nommé
.fetchmailrc dans votre homedir (par exemple avec vi : vi
~/.fetchmailrc) qui contient les lignes suivantes :
poll pop.libertysurf.fr with protocol POP3 username sgul0003_1_lsurf there password MONPASSWORD is kerphi here
Il faut remplacer : pop.libertysurf.fr par l'adresse de votre
serveur pop3, sgul0003_1_lsurf et MONPASSWORD par
le nom d'utilisateur et le mot de passe que vous avez sur ce serveur. Et
finalement kerphi par votre login sur la machine présente, c'est
le compte qui va recevoir les mails qui vont être récupéré dans la boite mail
distante, donc votre compte à prioris.
Ensuite pour récupérer les mails, il suffit de taper
fetchmail. Pour automatiser la tache toutes les 10 minutes il
suffit de rajouter dans son crontab la ligne suivante :
4,14,24,34,44,54 * * * * /usr/bin/fetchmail >/dev/null
2>&1 (petit rappel : tapez crontab -e pour éditer
son crontab)
Je vous conseil plutôt d'utiliser hotway (cf la section suivante) car j'ai rencontré des problèmes avec gotmail lorsque hotmail avait changé l'interface de son webmail.
gotmail permet de rapatrier des mails depuis sa boite mail hotmail. Hotmail ne proposant pas de serveur pop3 ou imap, gotmail est une bonne alternative : il se connecte à la manière d'un client web et récupère les mails en passant par le site web (html/javascript) de hotmail.com
Voici comment configurer gotmail. Il faut simplement créer un fichier
nommé .gotmailrc dans votre homedir (par exemple avec vi :
vi ~/.gotmailrc) qui contient les lignes suivantes :
username=kerphi password=MONPASSWORD domain=hotmail.com only-new mark-read move=Messages supprimés use-procmail folders=Boîte de réception retry-limit=3
Il faut remplacer : kerphi par votre login sur hotmail.com,
et MONPASSWORD par votre password. Les paramètres suivant
indiquent à gotmail de deplacer dans la poubelle et de marquer comme lu les
messages qu'il recupère. Remarque : si vous utilisez un hotmail en anglais il
faut alors ajuster les paramètres move= et folders=
par leur équivalent en anglais.
Ensuite pour récupérer les mails, il suffit de taper gotmail.
Pour automatiser la tache toutes les 10 minutes il suffit de rajouter dans
son crontab la ligne suivante : 0,10,20,30,40,50 * * * *
/usr/bin/gotmail >/dev/null 2>&1 (petit rappel : tapez
crontab -e pour éditer son crontab)
hotway permet tout comme gotmail de rapatrier les mails depuis sa boite
hotmail. Il se comporte comme un proxy POP3 entre hotmail et votre ordinateur
car pour rapatrier les mails vous allez vous connecter dessus comme si
c'était un serveur POP3 locale. Pour effectuer le rapatriement il suffit donc
d'utiliser fetchmail et de se connecter en locale, voici un exemple des
lignes à rajouter à la fin de votre ~/.fetchmailrc :
poll 127.0.0.1 with protocol POP3 username kerphi@hotmail.com there password MONPASSWORD is kerphi here
Il faut remplacer : kerphi@hotmail.com et
MONPASSWORD par votre adresse hotmail associée à son mot de
passe. Et finalement kerphi par votre login sur la machine
présente, c'est le compte qui va recevoir les mails qui vont être récupéré
dans la boite mail distante, donc votre compte à prioris.
uw-imapd est un serveur imap, il permet de remplacer les traditionnels serveurs POP.
Pourquoi IMAP ? Une réponse simple pourrait être : les messages peuvent être entièrement gérés en restant sur le serveur. On peut par exemple consulter ses mails à distance en passant par une interface web. pour plus d'imformation à propos d'imap je vous conseil cette introduction.
La configuration du serveur imap consiste à donner les valeurs par defaut au moment de la configuration automatique de debian (facile :p).
OpenWebmail est une interface web permettant de consulter ses mails (webmail).
Au moment de l'installation du package plusieurs questions sont posées :
Please select in this list which authentication module you wish
to use for your openwebmail server, répondez l'option par défaut
auth_pam.plOpenWebmail can be used in several languages. Please, choose the
language you want to use as default., donnez ici la langue pas
défaut que prendra l'interface Web, pour moi ce sera fr
(French)Openwebmail can check your emails spelling using ispell. Please
choose the default language for ispell, ça c'est pour la
correction orthographique, moi je prend french (en accord
avec ma langue par défaut plus haut.Run notification cron job?, répondez OuiApache Configuration, donnez lui le serveur que vous
utilisez, chez moi c'est apacheEnable Spamcheck? pour le spam, répondez
OuiUn fois l'installation effectuée j'ai du éditer le fichier
/etc/openwebmail/openwebmail.conf et remplacer la ligne suivante
ow_htmlurl /openwebmail par ow_htmlurl / car mon
serveur web est configuré avec un vhost
pour mon webmail, donc l'url que j'ai à taper est
https://webmail.zeitoun.net au lieu d'un truc du genre
http://www.zeitoun.net/openwebmail qui est l'option par
défaut.