Mail Postfix
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 |
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 ?
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. Voir ce topic, pour plus de détails.
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é de 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
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 :
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).
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 <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é (sur la différence entre su et su -, voir Root#su -).
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.
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.
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 :
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 :
- Configuration > Configurer Kmail
- Comptes, sélectionnez le compte local créé
- Cliquez sur < <Modifier> >
- 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 ajouter 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
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 : opération donc à proscrire sur une machine dédiée pour être un serveur de mail ou groupware. Pour éviter ce problème, veillez donc à 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 msecgui une règle de permission personnalisée pour /var/spool/mail/*, comme indiqué dans la page msec.- Fermez votre session Mandriva et reconnectez-vous, afin que les changements soient pris en compte.
Créez ensuite un compte de type Movemail :
- Faites Fichier > Paramètres des comptes
- Dans la colonne de gauche en bas cliquez sur Gestion des comptes > Ajouter un autre compte...
- Choisissez Unix Mailspool (Movemail)
Cliquez sur Suivant et remplissez les diverses rubriques.
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 Voir les paramètres pour ce 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 puis OK. Revenez à la fenêtre Paramètres du compte et, dans la liste déroulante Serveur sortant (SMTP), 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.
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








