Mail Postfix

De Wiki de la communauté Mandriva.

Le mail local permet aux utilisateurs d'une même machine de s'échanger des courriers entre eux ou même d'échanger des courriers avec l'extérieur.

Il est important de noter que même si vous êtes l'unique utilisateur de votre machine, il peut être intéressant d'ouvrir un compte de courrier local dans la mesure où certains services du système (tels que at et batch, crond, anacron et msec) « écrivent » à root ou aux utilisateurs : il peut vous être utile de prendre connaissance de ces messages.


Sommaire

Mail local

Comment fonctionne le mail à la sauce Unix/Linux ?

Sous Linux et Unix, chaque utilisateur dispose d'une boîte de mail locale : c'est un simple fichier texte dans /var/spool/mail/.

Le logiciel qui s'occupe de la distribution, de l'émission et de la réception du mail est Postfix, sous Mandriva Linux.

Je parlerai d'abord de l'échange de courrier local, autrement dit entre plusieurs comptes installés sur la même machine. Pour une ouverture sur l'extérieur, voir la section sur la configuration de Postfix pour l'accès à Internet.

Que faut-il configurer ?

Astuce !

Cette section décrit comment installer à la main le mail local en éditant différents fichiers de configuration.
Toutefois, il existe dans les versions antérieures à Mandriva 2009.1, un assistant de configuration graphique dont vous pourrez disposer en installant le paquet drakwizard, qui permet une installation plus confortable. Il faudra néanmoins passer par webmin pour une configuration aisée à partir de la 2009.1.

De plus, les fichiers de configuration cités ci-dessous doivent être édités en tant que root, en vue de modifications. Se référer à la page éditer des fichiers de configuration, si vous ne savez pas comment procéder.


Le mail local est configuré correctement par défaut (si Postfix a été installé, bien sûr) à une exception près : les mails de root. En fait, root ne doit pas recevoir de mail : ses mails doivent être redirigés vers la boîte de mail du compte de simple utilisateur de l'administrateur réel de la machine. Ceci parce que les mails qu'il reçoit sont généralement importants et parfois urgents (beaucoup d'applications s'attendent à ce que les messages pour root soient lus régulièrement), alors que l'administrateur d'un système peut très bien ne pas se connecter en tant que root pendant une longue période pendant laquelle il se connectera au contraire peut-être quotidiennement en tant que simple utilisateur.

Configurer la boîte mails de root

Éditer le fichier /etc/postfix/aliases. On y voit cette section :

# CHANGE THIS LINE to an account of a HUMAN
root:           postfix

Indiquer le nom des utilisateurs qui doivent recevoir les mails à destination de root (le rapport de sécurité msec, par exemple) séparés par des virgules. Indiquer ceci à la place de "postfix". On obtient alors une section de ce style :

# CHANGE THIS LINE to an account of a HUMAN
root:           administrator,yoho,tonton

Paramétrer son nom d'hôte

Postfix est assez têtu et, veut absolument savoir à quel domaine vous appartenez pour envoyer et recevoir des mails. Il ne fonctionnera pas sinon. Un domaine sert à vous identifier dans les grands réseaux, mais vous n'en avez pas besoin pour le mail local. Nous allons donc donner à Postfix un faux nom de domaine qui lui conviendra très bien : domainelocal.

Si vous n'avez pas déjà donné un nom d'hôte à votre machine (dans les quelques « réglages Internet » de Image:drakconf-icon.png drakconf) alors, vous avez le nom par défaut : localhost. Sinon, vous lui avez donné un nom de votre choix. Dans notre exemple, ce nom d'hôte est ma_machine.

Éditez le fichier /etc/postfix/main.cf de façon à ce qu'il contienne ces trois lignes (laisser toutes les autres lignes en place) :

myhostname = ma_machine.domainelocal
mynetworks_style = host
inet_interfaces = localhost
  • La première ligne indique à Postfix votre nom de machine « pleinement qualifié » (FQDN) qui est la concaténation de votre nom de machine, d'un point et de votre (faux) domaine
  • la deuxième ligne indique à Postfix qu'il ne gère le mail que concernant cet hôte et, que cela ne sert à rien d'envoyer des mails ailleurs
  • la troisième ligne restreint Postfix à l'interface "localhost" : il ne pourra pas envoyer ni recevoir de mails sur l'Internet (procure une protection supplémentaire de votre PC, en plus).

Vérifier que les changements dans Postfix sont bien pris en compte

Ouvrir deux terminaux en tant que root :

Dans le premier, taper :

Image:Konsole.png
[root@ordi ~]# tail -f /var/log/syslog

La commande grep filtrera les messages qui vous concernent. Ne vous inquiétez pas si vous ne voyez rien pour l'instant.

Dans le second, taper :

Image:Konsole.png
[root@ordi ~]# service postfix restart
mail root

puis taper "test" en sujet, <ENTREE> et enfin <CTRL+D>

Des informations ont défilé dans l'autre terminal : contrôler que tout a l'air correct au moment du redémarrage de Postfix. Contrôler aussi que le mail a bien été redirigé correctement (l'adresse de l'utilisateur final apparaît).


Utilisation du mail local en console

Comme nous l'avons entrevu à la section précédente, pour créer et envoyer un message au destinataire toto, utilisateur du même système, vous devez taper la commande :

Image:Konsole.png
[utilisateur@ordi ~]$ mail toto

Une ligne commençant par 'Subject :' apparait  : vous pouvez y taper alors le contenu du 'sujet' du mail puis, faire <ENTREE> . Ensuite, vous tapez directement le contenu du message et, quand vous avez fini <CTRL+D> ou, (ce qui est plus rapide) vous passez à la ligne par <ENTREE> et vous tapez un unique point suivi immédiatement par <ENTREE>  : le message est alors envoyé (le point ne fera pas partie du texte du message).

Pour voir la liste des messages disponibles dans votre boîte vous pouvez taper :

Image:Konsole.png
[utilisateur@ordi ~]$ mail

vous obtenez alors une liste de messages numérotés et une nouvelle invite en forme de point d'interrogation. Pour lire un des messages affichés faites :

Image:Konsole.png
[utilisateur@ordi ~]$ ? t numero_du_message

pour quitter faites :

Image:Konsole.png
[utilisateur@ordi ~]$ ? q

pour répondre à un message faites :

Image:Konsole.png
[utilisateur@ordi ~]$ ? reply numero_de_message

et enfin pour écrire à un utilisateur sans sortir du programme vous ferez :

Image:Konsole.png
[utilisateur@ordi ~]$ ? mail To : adresse_du_destinataire

Attention à un petit piège !

Lorsque vous consultez le mail local à partir d'une console graphique (Konsole, rXVT...) après avoir changé d'identité (que la consultation se fasse via la commande mail ou en invoquant un courielleur (Kmail, Thunderbird...) : veillez bien à changer d'identité en utilisant

Image:Konsole.png
[utilisateur@ordi ~]$ su -

et pas simplement

Image:Konsole.png
[utilisateur@ordi ~]$ su

car, dans ce dernier cas, la variable MAIL (qui contient le chemin de votre boîte à lettres) conserverait la valeur appropriée pour l'utilisateur initial et, vous ne pourriez pas consulter le courrier correspondant à la nouvelle identité.

Configurer KMail pour la consultation de mails locaux

Il suffit de créer un compte de type "local".
Voici, comment procéder.

Tout d'abord, exécutez Kmail.

A travers le menu Outil, exécutez l'option Assistant de compte.

À noter !
Cet assistant est automatiquement exécuté lors du premier lancement de Kmail
.



Laissez les options par défaut et, cliquez sur <Suivant>

Type de compte, choisir Boite locale; puis cliquez sur <Suivant>


Informations sur le compte


En prenant comme base, les informations saisies dans les fichiers de configuration, nous avons :

  • yoho est un utilisateur configuré pour recevoir des mails locaux, d'après le fichier /etc/postfix/aliases
  • myhostname a pour valeur ma_machine.domainelocal d'après le fichier /etc/postfix/main.cf

Nous pouvons donc renseigner les valeurs suivantes :

  • Nom réel : saisissez votre nom. Dans notre cas, ce sera Yoho
  • Adresse électronique : yoho@ma_machine.domainelocal (format : monutilisateur@myhostname).

Cliquez sur <Suivant>


Informations sur l'utilisateur


Cliquez sur <Suivant>

Informations sur le serveur


  • URL : il s'agit d'indiquer la boîte mail locale de l'utilisateur. Notre utilisateur est yoho,et comme cité plus haut, les boites locales sont stockées dans le dossier /var/spool/mail/ sous forme de fichier.
    Dans notre cas, nous saisirons donc : /var/spool/mail/yoho.
À noter !
Vous pouvez aussi créer un dossier de destination différent de la boîte de réception, par exemple "Mails locaux" et indiquer dans la configuration du compte que vos mails locaux arriveront dans ce dossier.
  • Cochez l'option Utiliser la réception locale et, cliquez sur <Terminer>


De retour dans la fenêtre principale de Kmail, un clic sur le bouton Relever le courrier fait apparaître des éléments dans la boite de réception. Vérifiez que vous avez bien reçu le mail "test" rédigé ci-dessus.

Remarque
Lors de la relève de mails, Kmail crée un fichier de verrouillage (/var/spool/mail/yoho.lock).
Le système de verrouillage (par défaut) employé par Kmail est de type procmail. Celui-ci nécessite des droits d'écriture dans /var/spool/mail.
N'ayant pas les droits suffisants dans ce répertoire (/var/spool/mail), un message d'erreur apparaît dans la barre de message :

Problème de transmission
Impossible de verrouiller /var/spool/mail/yoho


Il est possible de changer les permissions sur /var/spool/mail en utilisant msec, de façon à ce que tout le monde puisse y écrire (et c'est un peu dangereux au niveau de la sécurité...); ou d'utiliser un dossier de destination, dans lequel nous avons les privilèges suffisants.
Ici, nous nous contenterons de changer le système de verrouillage :

  1. Configuration > Configurer Kmail
  2. Comptes, sélectionnez le compte local créé
  3. Cliquez sur < <Modifier> >
  4. Méthode de verrouillage : choisir FCNTL ou Aucun. Sachez toutefois, que vous risquez de perdre des messages si vous n'utilisez aucun verrouillage.



Configurer Thunderbird pour lire et envoyer des mails locaux

Sous Thunderbird, vous devez d'abord rajouter votre utilisateur dans le groupe "mail" car, Thunderbird dispose de moins de modes de verrouillage que Kmail.

Pour cela, utilisez l'interface graphique de Mandriva Image:Userdrake-icon.png Userdrake : Menu > Outils > Outils système > Configurer votre ordinateur > Système > Gérer les utilisateurs du système. Sélectionnez votre utilisateur puis : clic droit, Onglet Groupe, cochez la case du groupe mail.
Cela a une conséquence sur la sécurité du système : votre utilisateur a en principe le droit de consulter, modifier, rajouter et supprimer n'importe quel message local, même s'il n'est pas destiné à votre utilisateur (donc à ne surtout pas faire sur une machine dédiée à être un serveur de mail ou un serveur groupware, par exemple) : pour éviter des problèmes, veillez donc bien à ce que les fichiers de boîte à lettres des utilisateurs dans /var/spool/mail (fichiers dont le nom est identique à l'identifiant de connexion de l'utilisateur) possèdent uniquement des droits de lecture et écriture pour leur propriétaire (-rw-------).

Image:Konsole.png
[root@ordi ~]# cd /var/spool/mail

chmod 600 ./*

Vous pouvez aussi pour cela créer dans Image:drakperm-icon.png drakperm ou msec une règle de permission personnalisée pour /var/spool/mail/*.

Une fois votre utilisateur rajouté dans ce groupe, déconnectez votre session (pas besoin de redémarrer complètement) et reconnectez-vous.
Créez ensuite un compte de type Movemail.

Dans la page Paramètres serveur de votre compte, ni le paramètre nom du serveur, ni le paramètre nom d'utilisateur ne sont utilisés. Vous pouvez donc, mettre ce que vous voulez. Pour rester cohérent, j'ai mis "localhost" et mon nom d'utilisateur.

Cliquez ensuite sur Relever et vérifiez que vous avez bien reçu le mail "test" rédigé ci-dessus.

Pour envoyer des messages, vous devez créer un smtp 'localhost' :

  • sélectionnez le nom de votre compte de mail local, cliquez sur Paramètres du compte,
  • tout en bas à gauche sélectionnez Serveur sortant (SMTP)
  • puis en haut à droite Ajouter.

Dans la fenêtre qui s'ouvre alors tapez localhost dans Nom du serveur. Revenez à la fenêtre Paramètres du compte et, dans la liste déroulante Nom du serveur, sélectionnez localhost.

Si vous avez des tâches crond d'une périodicité rapprochée qui provoquent un affichage qui vous sera en fait envoyé sous forme de mail par crond, vous risquez d'être vite très encombré. Souvenez-vous alors que Thunderbird vous permet de créer des sous-dossiers spécialisés pour certains types de messages dans le compte de mail local.
Vous pouvez par exemple en créer un pour les tâches crond et, créer un filtre de message qui ventile directement lesdits messages dans ce sous-dossier. Seuls resteront alors, dans la boîte de réception les autres messages, moins nombreux, que vous pouvez si vous le souhaitez, ventiler dans divers dossiers, à votre gré. Pour tout cela, voir cette documentation de Geckzone.

À noter !

Les dernières versions de Thunderbird ne permettent pas la création de compte de type Movemail. Dans ce cas, créer un compte POP, quitter Thunderbird puis, changer le type de compte dans le fichier /home/<user>/.thunderbird/<compte>.default/prefs.js :

  • user_pref("mail.server.serverXX.name", "pop");

devient

  • user_pref("mail.server.serverXXname", "movemail");

Accès à Internet

Ce qui suit présuppose que l'installation de Postfix sur votre machine a déjà été effectuée.


Configuration du relais

Pour configurer Postfix de telle sorte qu'il redirige le courrier vers l'extérieur, il faut spécifier l'adresse du serveur à utiliser comme relais. Editez le fichier /etc/postfix/main.cf et, ajoutez (ou modifiez) la ligne suivante :

relayhost = [smtp.fai.fr]

smtp.fai.fr est l'adresse du serveur d'envoi de mail de votre fournisseur, comme, par exemple, smtp.free.fr.


Mise à jour de l'adresse de l'expéditeur

Il faut à présent configurer Postfix afin de prendre en compte votre véritable adresse et, non pas celle que vous avez sur votre système. Dans le cas contraire, le serveur smtp de votre fournisseur va recevoir une demande de relais provenant d'un utilisateur login.localhost.localdomain et, sauf si vous avez enregistré votre nom de domaine, il répondra à votre requête par un message du genre :

localhost postfix/smtp[9949]: 5657C69A43: to=<jerome.f.martin@free.fr>, relay=smtp.free.fr[212.27.48.4], delay=0, status=bounced (host smtp.free.fr[212.27.48.4] said: 550 <login@localhost.localdomain>: Sender address rejected: Domain not found (in reply to MAIL FROM command))

Cette limitation permet aux FAI d'éviter d'être des relais pour des sites de SPAM ou de virus.

Editez le fichier /etc/postfix/canonical et, ajoutez les règles de réécriture, comme, par exemple :

jerome  jerome.f.martin@free.fr

ou bien

@mamachine.mondomaine  jerome.f.martin@free.fr

pour réécrire les adresses de la forme user@mamachine.mondomaine. Noter que mamachine.mondomaine est le nom spécifié dans votre configuration /etc/postfix/master.cf par le champs myhostname

Editez le fichier /etc/postfix/main.cf pour indiquer à Postfix l'utilisation de réécriture d'adresse :

sender_canonical_maps = hash:/etc/postfix/canonical

Relancez alors le service :

service postfix restart



Cette page est une version révisée des deux pages maintenant obsolètes de l'ancienne base de connaissances : http://club.mandriva.com/xwiki/bin/view/KB/AdminMailLocal et http://club.mandriva.com/xwiki/bin/view/KB/AdminMailOutbound ptyxs 3 mars 2008 à 16:47 (CET)


en recherche d’emploi ?