====== Installation d'un serveur de mails ======
Dans cet article je vais tenter d'expliquer comment installer un serveur de mail. Dans [[:articles:lutter-contre-le-spam-avec-spamassassin:|un autre article]] je parlerai de comment installer un filtre anti-spam (spamassassin).
Je base ce tutoriel 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é.
===== Présentation =====
Voila tout d'abord une brève présentation des différents composants :
* [[http://www.postfix.org/|postfix]] permet d'envoyer et de recevoir des mails, c'est un serveur smtp.
* [[http://catb.org/~esr/fetchmail/|fetchmail]] permet de récupérer des mails chez un hébergeur utilisant le protocole POP3 (entre autre).
* [[http://sourceforge.net/projects/gotmail|gotmail]] permet de récupérer les mails depuis sa boite hotmail.com, je l'ai récemment échangé au profit de [[http://hotwayd.sourceforge.net/|hotway]].
* [[http://www.procmail.org/|procmail]] permet de trier les mails.
* [[http://www.washington.edu/imap/|uw-imapd]] permet de consulter à distance ses mails (c'est le même système que les newsgroup), c'est un serveur imap.
* [[http://openwebmail.org/|openwebmail]] permet de consulter ses mails en passant par une interface web.
===== Installation =====
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.
===== Configuration =====
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 après la configuration que debian a généré.
==== postfix ====
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 aliases un peu plus bas)
* "Nom de courrier", c'est la partie droite de votre adresse email, chez moi c'est "zeitoun.net"
* "Faut-il ajouter .domaine aux adresses simples ?", répondez "Non"
* "Pour 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 "Oui"
La 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 peut-être que je me trompe ici)
Le paramètre "myorigin" indique quel suffixe 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 paramè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'extérieur 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'aliases : "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 sympathique.
==== procmail ====
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 dedans :
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 ====
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 à priori.
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)
==== gotmail ====
//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 déplacer dans la poubelle et de marquer comme lu les messages qu'il récupè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 ====
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 à priori.
==== uw-imapd ====
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'information à propos d'imap je vous conseil [[http://christian.caleca.free.fr/imap/introduction.htm|cette introduction]].
La configuration du serveur imap consiste à donner les valeurs par défaut au moment de la configuration automatique de debian (facile :p).
==== OpenWebmail ====
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.pl"
* "OpenWebmail 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 "Oui"
* "Apache Configuration", donnez lui le serveur que vous utilisez, chez moi c'est "apache"
* "Enable Spamcheck?" pour le spam, répondez "Oui"
Un 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 [[http://kerphi.zeitoun.net/articles/configuration_d_un_virtual_host/index.html|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.
===== Sources =====
* [[http://www.math.jussieu.fr/~jas/imap.html|Installation d'un Webmail]]
* [[http://www.tuteurs.ens.fr/internet/courrier/procmail.html|Filtrer son courrier électronique avec procmail]]
~~DISCUSSION~~
{{tag>article computing install server mail debian linux postfix fetchmail procmail uw-imapd openwebmail gotmail hotway}}