Exim4 est un serveur de messagerie très complet, il est le serveur de messagerie par défaut sur Debian.
Il permet de recevoir et d'envoyer des mails.
Il peut être configuré en serveur et/ou en client.
Nous allons expliquer ici comment l'utiliser :
Pour envoyer les mails système de nos machines sur l'adresse mail de notre FAI (ou tout autre compte valide de messagerie),
on utilisera le SMTP du FAI pour livrer nos messages .
Il y a 3 cas possibles :
Exim4 est déjà installé sous debian , si ce n'est pas le cas :
apt-get update && apt-get install exim4
Si le configurateur graphique s'ouvre :
confirmer la configuration par défaut par des “OK” .
Par défaut il ne traite que les messages locaux et les archives localement sur la machine.
Maintenant il faut renseigner les deux fichiers “aliases” et “emails-addresses” (attention il y a 2 “d” à “addresses”).
nano /etc/aliases
root: user1 (nom du user de votre logging de session) \\ rajouter cette ligne en fin de script. \\ user1: votre_adresse_mail_internet (votre compte de messagerie où vous voulez que les mails soient livrés). \\
si votre user du logging est “toto” et votre compte de messagerie dupont@domaine.net
toto: dupont@domaine.net (un espace entre “toto:” et “l'adresse mail”)
Pour le fichier emails-addresses, il vous permet d identifier l'expéditeur mais n'a pas besoin d'être réel.
Explication :
il va se trouver dans le from du message reçu , il faut qu'il soit valide mais ne dois pas forcément exister.
Ceci ne fonctionnera pas : dupont@domain
Ceci fonctionnera : dupont@domain.net
J'utilise le nom de ma machine, si elle s'appelle debian40 , je mettrais debian40@local.net
ou pour un sous-réseau avec un nom de domaine, la même machine debian40@domaine_du _sous-réseau
modification du fichier
nano /etc/email-addresses
# This is /etc/email-addresses. It is part of the exim package # # This file contains email addresses to use for outgoing mail. Any local # part not in here will be qualified by the system domain as normal. # # It should contain lines of the form: # #user: someone@isp.com #otheruser: someoneelse@anotherisp.com root: debian40@local.net user1: debian40@local.net
Même remarque que ci-dessus “user1” mettre le nom de votre user de la session
généralement c'est root qui nous écrit.
un exemple: la forme du message reçu sur ma messagerie
de "root" <debian40@local.net> à root@local.net date 13/05/15 18:37 objet apt-listchanges : nouveautés pour debian40 Le message: sane-backends (1.0.24-10) unstable; urgency=high The v4l backend is disabled since this version. -- Jörg Frings-Fürst <debian@jff-webhosting.net> Sun, 18 Jan 2015 11:46:18 +0100
J'ai bien debian40, je sais d'où vient mon message, l'email debian40@local.net n'existe pas, mais valide pour la messagerie.
J'espère avoir été clair, le reste n'est plus qu'un détail pour finir la configuration de Exim4.
Vous avez une seule machine connectée à internet sans domaine local,
Exim4 devra être smarthost et client sur cette machine.
La commande à faire sur une console graphique et en root (l'utilitaire est en français)
dpkg-reconfigure exim4-config
Lancement du configurateur graphique de Exim4
(fonctionne en console graphique et console serveur.)
configuration du serveur de courrier. type de configuration : => "envoi par relais (smarthost)-pas de courrier local." on sélectionne "OK" puis "enter". Nom du courrier système: => "debian40" (le nom netbios de votre machine). on sélectionne "OK" puis "enter". Liste des adresses IP où exim sera en attente de connexions SMTP entrantes: => "127.0.0.1" Attention ne jamais laisser vide ce champ , personnellement j'enlève l'ipv6 local. exim sera à l'écoute sur 127.0.0.1 pour les messages entrants on sélectionne "OK" puis "enter" Autres destinations dont le courrier doit être accepté : => "localhost" on sélectionne "OK" puis "enter" Nom de domaine visible pour les utilisateurs locaux: => "localhost" on sélectionne "OK" puis "enter" Nom réseau ou adresse IP du systeme smarthost: => "smtp.orange.fr" (j'ai mis celui d'Orange vous remplacez par le vôtre) C'est ici que vous précisez comment le serveur distribue les mails vers l'extérieur si votre FAI demande un mot de passe ce sera expliqué plus bas on sélectionne "OK" puis "enter" Faut-il minimiser les requêtes DNS (connexion à la demande ): => "NON" on sélectionne "NON" puis "enter" Faut-il séparer la configuration dans plusieurs fichiers: => "NON" on sélectionne "NON" puis "enter"
fin de la configuration, Exim4 redémarre tout seul, votre serveur de messagerie est opérationnel
Vous avez une machine sur un réseau local avec un domaine, DNS ,DHCP et Exim4 serveur sont bien configurés.
Pour aliases et emails-addresses rien ne change voir ci-dessus.
Pour emails-addresses, le domaine “local.net” sera bien sûr remplacé par votre domaine local.
Exim4 devra être client sur cette machine.
La commande à faire sur une console graphique et en root (l'utilitaire est en français)
On va dire que le domaine de ce réseau “mondomaine.net et que le serveur exim4 s'appellent “debian1”
Son adresse sera debian1.mondomaine.net, le dns nous donnera son ip
Notre client s'appellera debian40 sur le domaine mondomaine.net
dpkg-reconfigure exim4-config
lancement du configurateur graphique de Exim4
(fonctionne en console graphique et console serveur.)
configuration du serveur de courrier. type de configuration : => "envoi par relais (smarthost)-pas de courrier local." on sélectionne "OK" puis "enter". Nom du courrier système: => "mondomaine.net" (le nom de domaine complet ). on sélectionne "OK" puis "enter". Liste des adresses IP ou exim sera en attente de connexions SMTP entrantes: => "127.0.0.1" attention ne jamais laisser vide ce champ , personnellement j'enlève l'ipv6 local. exim sera à l'écoute sur 127.0.0.1 pour les messages entrants on sélectionne "OK" puis "enter" Autres destinations dont le courrier doit être accepté : => "" (laisser vide) on sélectionne "OK" puis "enter" Nom de domaine visible pour les utilisateurs locaux: => "mondomaine.net" on sélectionne "OK" puis "enter" Nom réseau ou adresse IP du système smarthost: => "debian1.mondomaine.net" (l'adresse ou l'ip du serveur local exim4) C'est ici que vous précisez comment le serveur distribue les mails vers l'extérieur on sélectionne "OK" puis "enter" Faut-il minimiser les requêtes DNS (connection a la demande ): => "NON" on sélectionne "NON" puis "enter" Faut-il séparer la configuration dans plusieurs fichiers: => "NON" on sélectionne "NON" puis "enter"
fin de la configuration, Exim4 redémarre tout seul, votre serveur de messagerie est opérationnel
la différence avec le premier cas est qu'il y a un serveur Exim4 qui fait suivre vos mails vers l'extérieur, ici debian1,
pour debian40 le smarthost est maintenant (non plus lui même) mais debian1.
Vous avez une passerelle sur un réseau local avec un domaine, DNS ,DHCP bien configurés
Vous voulez installer un serveur de messagerie qui va récupérer les mails de machines clientes, ses propres mails (en local )
et les faire suivre sur votre messagerie extérieure,
ça ressemble au cas 1 avec quelques nuances.
On reprend le même domaine que le cas 2, “mondomaine.net”, serveur “debian1” et client “debian40”.
Pour aliases et emails-addresses rien ne change voir ci-dessus.
Pour emails-addresses, le domaine “local.net” sera bien sûr remplacé par votre domaine local.
Exim4 devra être serveur et client sur cette machine.
La commande à faire sur une console graphique et en root (l'utilitaire est en français)
dpkg-reconfigure exim4-config
lancement du configurateur graphique de Exim4
(fonctionne en console graphique et console serveur.)
configuration du serveur de courrier. type de configuration : => "envoi par relais (smarthost)-pas de courrier local." on sélectionne "OK" puis "enter". Nom du courrier système: => "mondomaine.net" (le nom de domaine complet ). on sélectionne "OK" puis "enter". Liste des adresses IP ou exim sera en attente de connexions SMTP entrantes: => "127.0.0.1 ; 192.168.10.1" Attention ne jamais laisser vide ce champ , personnellement j'enlève l'ipv6 local. exim sera à l'écoute sur 127.0.0.1 et 192.168.10.1 pour les messages entrants on sélectionne "OK" puis "enter" Autres destinations dont le courrier doit être accepté : => "mondomaine.net" on sélectionne "OK" puis "enter" Nom de domaine visible pour les utilisateurs locaux: => "mondomaine.net" on sélectionne "OK" puis "enter" Nom réseau ou adresse IP du systeme smarthost: => "smtp.orange.fr" (j'ai mis le smtp d'orange comme exemple à remplacer par le vôtre) c'est ici que vous précisez comment le serveur distribue les mails vers l'extérieur on sélectionne "OK" puis "enter" Machines à relayer : => "192.168.10.0/24" ip autorisées à envoyer des mails on sélectionne "OK" puis "enter" Faut-il minimiser les requêtes DNS (connexion à la demande ): => "NON" on sélectionne "NON" puis "enter" Faut-il séparer la configuration dans plusieurs fichiers: => "NON" on sélectionne "NON" puis "enter"
fin de la configuration, Exim4 redémarre tout seul, votre serveur de messagerie est opérationnel.
La différence avec les deux premier cas, nous sommes serveur de messagerie d'un sous-réseau sur eth1 de la passerelle
que l'on précise pas son IP, dans les 2 premiers cas seul 127.0.0.1 était à l'écoute maintenant nous avons aussi 192.168.10.1(ip de eth1 de la passerelle)
D'où la question supplémentaire “machine à relayer”, notre sous-réseau en 192.168.10.0/24
Au niveau sécurité eth0 n'existe pas pour Exim4, il n'écoutera pas les clients sur cet interface.
Voilà une manière simple de récupérer ses mails système sur sa messagerie extérieure.
Nota: Exim4 renseigne un petit fichier /etc/mailname qui contient le nom du serveur de mail
utile pour les applications qui ont besoin de la messagerie
pour les 2 cas avec un domaine et un serveur DNS local \\ mon enregistrement MX est sous la forme \\ MX 1 debian1.mondomaine.net votre configuration peut être différente @ MX 1 mail ou $origine MX 1 mail à adapter selon votre configuration
Vous pouvez tester:
(ce test est valable pour les 3 cas )
votre nom est “toto” le nom de votre machine “debian40”
en console taper
echo "test mail " | mail -s "test" toto
ou
echo "test mail " | mail -s "test" toto@debian40
votre message sera:
de: toto@debian40
a: toto
objet: test
ps: petite remarque , si vous lancez la commande en console root (au lieu d user) pour la ligne ci dessus , pour “de: toto@debian40” vous aurez “de: root@debian40”
relancer messages en attentes
exim -qff
information sur exim4
/usr/sbin/exim4 -d -bt mail
liste des messages gelés
mailq | grep "frozen"
puis retenter la livraison du message
exim4 -M 1I8ule-001MM-09
1I8ule-001MM-09 correspond au nom du message , a adapter avec le nom reel de votre message en attente
supprimer les messages en file d attente
exim4 -Mrm `ls /var/spool/exim4/input/ | grep -- -H$ | cut -c 1-16`