Mail Postfix
Un article de Wiki de la communauté Mandriva.
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 |
[modifier] Mail local
[modifier] 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.
[modifier] Que faut-il configurer ?
Cette section décrit comment installer à la main le mail local en éditant différents fichiers de configuration. Toutefois, il existe maintenant un assistant de configuration graphique dont vous pourrez disposer en installant le paquet drakwizard qui permet une installation plus confortable.
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.
[modifier] Configurer la boîte de mail 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
[modifier] 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 drakconf) alors, vous avez le nom par défaut qui est "localhost". Sinon, vous lui avez donné un nom de votre choix. Appelons ce nom d'hôte "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 du mail ailleurs
- la troisième ligne restreint Postfix à l'interface "localhost" : il ne pourra pas envoyer ni recevoir de mail sur l'Internet (procure une protection supplémentaire de votre PC, en plus).
[modifier] Vérifier que les changements dans Postfix sont bien pris en compte
Ouvrir deux terminaux en tant que root :
Dans le premier, taper :
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 :
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).
[modifier] 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 :
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 vous tapez ou bien <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 :
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 :
pour quitter faites :
pour répondre à un message faites :
et enfin pour écrire à un utilisateur sans sortir du programme vous ferez :
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
et pas simplement
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é.
[modifier] Configurer KMail pour lire les mails locaux
kmail_config.png
Sous KMail, il suffit de créer un nouveau compte de type "local". Vous pouvez choisir "FCNTL" ou "Aucun" comme mode de verrouillage (si vous ne comptez recevoir des mails locaux que très épisodiquement, "Aucun" ne pose pas de problème). Vous pouvez aussi utiliser un fichier de verrouillage (première option) mais vous devez utiliser msec pour changer les droits sur /var/spool/mail de façon à ce que tout le monde puisse écrire (et c'est un peu dangereux au niveau de la sécurité...).
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.
Vérifiez que vous avez bien reçu le mail "test" rédigé ci-dessus.
[modifier] 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 drakusers : Menu > Outils > Outils système > Configurer votre ordinateur > Système > Gérer les utilisateurs du système. Sélectionner votre utilisateur puis : clic droit, Onglet Groupe, cocher la cas du group 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-------).
Vous pouvez aussi pour cela créer dans drakperm 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 server' sélectionnez 'localhost'.
Si vous avez des tâches crond d'une pédiodicité 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 les messages crond dans ce sous-dossier. Seuls resteront alors dans la boîte de réception les autres messages, moins nombreux, que vous pouvez du reste aussi, si vous le souhaitez, ventiler dans divers dossiers, à votre gré. Pour tout cela voir cette documentation de Geckozone.
[modifier] Accès à Internet
Ce qui suit présuppose que l'installation de Postfix sur votre machine a déjà été effectuée.
[modifier] 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.
[modifier] Mise à jour de l'adresse de l'expéditeur
Il faut à présent configurer Postfix pour mettre à jour l'adresse de l'expéditeur 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=<[email protected]>, relay=smtp.free.fr[212.27.48.4], delay=0, status=bounced (host smtp.free.fr[212.27.48.4] said: 550 <[email protected]>: 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 [email protected]
ou bien
@mamachine.mondomaine [email protected]
pour réécrire les adresses de la forme [email protected]. 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)