Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
serveur_mail_avec_postfix_et_fetchmail [Le 02/03/2013, 17:05] – [Configuration de fetchmail] 184.160.128.26 | serveur_mail_avec_postfix_et_fetchmail [Le 20/02/2017, 16:43] (Version actuelle) – tags L'Africain | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | ====== Installer un serveur de courriel avec postfix, procmail et fetchmail ====== | ||
+ | |||
+ | ===== Description ===== | ||
+ | |||
+ | L' | ||
+ | |||
+ | __Pourquoi utiliser deux courrielleurs ?__\\ | ||
+ | Thunderbird permet la lecture des courriels depuis son PC comme le fait tout un chacun mais '' | ||
+ | |||
+ | Pour que le tutoriel soit plus clair, je vais définir **deux boites aux lettres**: | ||
+ | *la boite d'un **fournisseur d' | ||
+ | *la boite du **serveur de courriel interne toto@postfix.fr** | ||
+ | __ | ||
+ | Installation des paquets__\\ | ||
+ | Avant tout il faut installer un certains nombres de paquets. | ||
+ | Un simple | ||
+ | sudo apt-get install postfix fetchmail procmail mutt | ||
+ | suffit. | ||
+ | |||
+ | |||
+ | ===== Configuration de fetchmail ===== | ||
+ | |||
+ | Passons maintenant à la configuration de '' | ||
+ | sudo touch .fetchmailrc && sudo xdg-open .fetchmailrc | ||
+ | Un fichier vide s' | ||
+ | < | ||
+ | poll pop.fai.fr | ||
+ | puis sauvegarder le fichier. | ||
+ | |||
+ | L' | ||
+ | |||
+ | A la place de //keep//, vous pouvez par la suite utiliser le paramètre // | ||
+ | |||
+ | __Protection du fichier__\\ | ||
+ | Maintenant il faut protéger ce fichier qui montre en clair les mots de passe du compte. C'est une étape que je n'ai pas encore réalisé (par fainéantise) mais je vous livre la méthode. | ||
+ | |||
+ | On définit un utilisateur fetchmail (ça manque d’originalité, | ||
+ | |||
+ | su adduser -g 65534 -d / | ||
+ | |||
+ | * -g ou (-gid) pour utiliser le groupe nogroup. Mettez le GID qui correspond à nogroup, ici 65534. En fait, vous mettez ce que vous voulez (100 pour users par exemple est pas mal non plus). | ||
+ | * -d ou (--home) pour utiliser le répertoire / | ||
+ | |||
+ | Changez les utilisateurs/ | ||
+ | |||
+ | sudo chown fetchmail: | ||
+ | sudo chmod 600 / | ||
+ | sudo chown -R fetchmail: | ||
+ | sudo chmod 700 / | ||
+ | |||
+ | Reste ensuite à vérifier 2 choses : | ||
+ | * Que le fichier / | ||
+ | * Que le script de lancement / | ||
+ | |||
+ | Voilà. Normalement, | ||
+ | |||
+ | |||
+ | |||
+ | ===== Configuration de procmail ===== | ||
+ | |||
+ | Procmail est chargé de faire le tri de courriels à l'aide de filtres appelés **recettes**. | ||
+ | créons un répertoire pour stocker les courriels dans le répertoire personnel de toto | ||
+ | sudo apt-get install maildrop | ||
+ | sudo maildirmake Maildir | ||
+ | Ceci créera la boite de courriel Maildir/ dans votre ~, autrement dit, dans votre /home/toto. | ||
+ | |||
+ | Une fois de plus il faut rédiger un fichier dans son répertoire personnel par exemple. | ||
+ | sudo touch .procmailrc && sudo xdg-open .procmailrc | ||
+ | Il faut compléter la page vierge pour obtenir un fichier de ce type | ||
+ | < | ||
+ | ## Faites en sorte que ça existe. | ||
+ | LOGFILE=/ | ||
+ | LOGABSTRACT=no | ||
+ | #VERBOSE=on (Est utilisé uniquement pour le débogage.) | ||
+ | VERBOSE=off | ||
+ | FORMAIL=/ | ||
+ | NL=" | ||
+ | ## Les lignes de « recipe » commencent par « :0 ». | ||
+ | ## Ne mettez pas de commentaires dans les lignes de « recipe ». | ||
+ | ## Désactivez un « recipe » grace au NON logique (!). | ||
+ | ## Les conditions commencent par *, utilisez des expressions rationnelles. | ||
+ | ## Les conditions sont associées avec un ET logique. | ||
+ | ## Tout ce qui suit * est passé directement à egrep. | ||
+ | ## Une ligne d' | ||
+ | |||
+ | # Utilise formail pour les courriels dupliqués. | ||
+ | :0 Whc: .msgid.lock | ||
+ | | $FORMAIL -D 16384 .msgid.cache | ||
+ | |||
+ | # | ||
+ | :0 a | ||
+ | $MAILDIR/ | ||
+ | :0fw | ||
+ | | spamassassin -P | ||
+ | :0: | ||
+ | * ^X-Spam-Status: | ||
+ | $MAILDIR/ | ||
+ | |||
+ | # Pourriels à la poubelle. | ||
+ | :0 | ||
+ | * ^Subject: | ||
+ | $MAILDIR/ | ||
+ | |||
+ | # Plus de messages HTML. | ||
+ | :0 | ||
+ | * ^Content-Type: | ||
+ | $MAILDIR/ | ||
+ | |||
+ | # mailing list du wiki-ubuntu | ||
+ | :0 | ||
+ | * ^Subject: | ||
+ | $MAILDIR/ | ||
+ | |||
+ | #tri des courriels locaux | ||
+ | :0 | ||
+ | * ^TOtoto@postfix.fr | ||
+ | $MAILDIR/ | ||
+ | :0 | ||
+ | * ^TOroot@postfix.fr | ||
+ | $MAILDIR/ | ||
+ | | ||
+ | ####################################### | ||
+ | # Dernière règle : tout ce qui arrive # | ||
+ | # ici va dans la boîte par défaut. | ||
+ | ####################################### | ||
+ | :0 | ||
+ | * .* | ||
+ | Inbox</ | ||
+ | |||
+ | MAILDIR=/ | ||
+ | LOGFILE=/ | ||
+ | |||
+ | Viens ensuite les différentes recettes. | ||
+ | On marque le début d'une recette par | ||
+ | **:0** puis on indique le critère de tri par *** ^TO** ou ***^Subject** et enfin le fichier où l'on stocke les courriels. par exemple **$MAILDIR/ | ||
+ | |||
+ | Pour plus d' | ||
+ | Dans le fichier on a : | ||
+ | * une recette pour éviter les courriels dupliqués | ||
+ | * l' | ||
+ | * un tri en fonction des listes de diffusions | ||
+ | * les courriels internes | ||
+ | * et le restant est stocké dans le fichier Inbox. | ||
+ | |||
+ | |||
+ | ===== Vérification du fonctionnement du serveur ===== | ||
+ | Cette étape peut être faite à partir du moment où le serveur smtp est installé. | ||
+ | Le plus simple est de s' | ||
+ | Ou utiliser la commande mail du paquet mailx. | ||
+ | Par exemple : | ||
+ | |||
+ | mail -s essai toto@fai.net | ||
+ | Cc:< | ||
+ | essai pour voir | ||
+ | |||
+ | puis ctrl+d pour envoyer un courriel avec pour sujet essai à toto@fai.net et comme texte essai pour voir. sans copie particulière.\\ | ||
+ | __comment relever ses courriels avec fetchmail.__\\ | ||
+ | il suffit de taper | ||
+ | fetchmail -akv -m "/ | ||
+ | |||
+ | Si les droits sont bien attribués, on voit fetchmail interroger le FAI et le voir récupérer les courriels. | ||
+ | |||
+ | Sinon il faut vous les réattribuer avec un chmod, chgrp et chown. | ||
+ | |||
+ | __Comment vérifier le tri?__\\ | ||
+ | Il faut simplement aller dans le dossier **Maildir** et cliquer sur les fichiers définis dans procmail. | ||
+ | Tant qu'un courriel n'est pas trié par la recette, le fichier correspondant n’apparaît pas. | ||
+ | |||
+ | si vous ne les trouvez pas ils peuvent être stockés dans le répertoire **/ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Configuration de Thunderbird ===== | ||
+ | |||
+ | |||
+ | On définit un compte pop dans Thunderbird de façon classique. Puis on se rend dans **les paramètres du compte**, on change le répertoire du dossier local pour le rediriger vers le dossier Maildir crée auparavant.\\ | ||
+ | {{capture2.png|}}\\ | ||
+ | Ici, il y a **une petite subtilité importante**. D' | ||
+ | |||
+ | Pour que les **fichiers triés par procmail** apparaissent et soient gérés par Thunderbird, | ||
+ | |||
+ | Par exemple, créer un sous-dossier spambox pour récupérer les pourriels. | ||
+ | Ou un sous-dossier locaux pour les messages internes. | ||
+ | Il en faut autant que de fichier trié par procmail. | ||
+ | |||
+ | |||
+ | {{capture-1.png|}} | ||
+ | |||
+ | |||
+ | ===== Configuration de postfix ===== | ||
+ | Enfin on utilise postfix pour envoyer des courriels. C'est une utilisation très simple de ce serveur de courriels.\\ | ||
+ | En fait, on va créer un domaine mais qui n'est hélas pas connu sur la toile. Il faut donc réécrire le nom de domaine lorsque l'on veut envoyer un courriel vers l' | ||
+ | |||
+ | On édite un fichier | ||
+ | sudo xdg-open / | ||
+ | Puis on va y modifier un certain nombre de ligne | ||
+ | en voici un copie | ||
+ | <file txt main.cf># | ||
+ | |||
+ | smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) | ||
+ | biff = no | ||
+ | |||
+ | # appending .domain is the MUA's job. | ||
+ | append_dot_mydomain = no | ||
+ | |||
+ | # Uncomment the next line to generate " | ||
+ | # | ||
+ | |||
+ | #nom du serveur de courriel | ||
+ | myhostname = postfix.fr | ||
+ | mydomain = ce que l'on veut | ||
+ | mynetworks = 127.0.0.0/8 | ||
+ | |||
+ | #gestion des alias | ||
+ | alias_maps = hash:/ | ||
+ | alias_database = hash:/ | ||
+ | |||
+ | myorigin = / | ||
+ | mydestination = localhost.localdomain, | ||
+ | #relayhost = smtp.fai.fr | ||
+ | |||
+ | mailbox_command = procmail -a " | ||
+ | mailbox_size_limit = 0 | ||
+ | recipient_delimiter = + | ||
+ | inet_interfaces = all | ||
+ | |||
+ | #serveur imap renvoie sur le dossier Maildir | ||
+ | home_mailbox=Maildir/ | ||
+ | |||
+ | #ligne pour la translation d' | ||
+ | sender_canonical_maps = hash:/ | ||
+ | Le nom de domaine**(myhostname)** correspond au nom de serveur de courriel interne. postfix.fr\\ | ||
+ | Le nom de domaine**(mydomain)** correspond à un domaine comme www.goolge.fr ou autre. | ||
+ | Il existe la possibilité par exemple d' | ||
+ | |||
+ | Les alias(**alias_map**) servent à simplifier l' | ||
+ | Pour cela il faut ouvrir le fichier / | ||
+ | |||
+ | Sur le courriel apparaît le nom du serveur qui a envoyé le mail**(myorigin**). Ici c'est le nom de notre domaine situé dans / | ||
+ | **mydestinations** indique les autres noms possibles pour envoyer des courriels sur le réseau interne. Ainsi pour envoyer un courrier à toto, on peut écrire toto@postfix.fr mais aussi toto@localhost. Le courrier sera acheminé de la même façon.\\ | ||
+ | **La mailcommand** permet de commander procmail par postfix pour qu'il reçoivent le courrier. | ||
+ | |||
+ | (**home_mailbox**) Si on a installé un serveur Imap(courrier-Imap) le courrier téléchargé est stocké dans le répertoire /Maildir. | ||
+ | |||
+ | La ligne de réécriture d' | ||
+ | Il ne faut pas oublier de créer le fichier / | ||
+ | sudo touch / | ||
+ | Une page vierge s' | ||
+ | < | ||
+ | Il faut enfin penser à charger la base de données liée à postfix par un | ||
+ | postmap. | ||
+ | | ||
+ | |||
+ | ===== Conclusion ===== | ||
+ | J'ai décrit sur cette page l' | ||
+ | L' | ||
+ | __webographie__ ensemble des liens qui m'ont permis d' | ||
+ | |||
+ | |||
+ | Pour plus d' | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | // |