Une fois livré, le courrier peut être consulté
/var/spool/mail
)/var/spool/mail
par NFS
En entrée :
En sortie :
Stockage:
Pour un serveur simple, les décisions sont basées sur la provenance et la destination du courrier.
Provenance
Refile tout le courrier à expédier à un smart host, qui s'en occupera.
Cas des portables, accès chez fournisseurs, etc.
Relaie le courrier pour ses clients. En général, change les entêtes pour faire croire qu'il en est l'expéditeur (masquerading), pour que les retours de courriers se fassent bien.
Vu de l'extérieur, est l'échangeur de courrier pour plusieurs domaines.
En interne, redirige le courrier vers d'autres serveurs
Les logiciels les plus connus : Sendmail, Postfix, Exim, Smail, ...
Un fichier sendmail.cf
standard fait un bon millier de
lignes. C'est normal, parce qu'il y a théoriquement des quantités de
paramètres à régler.
La complexité vient également des
formats d'adresses qu'il convient de traiter. De nos jours, on n'emploie
quasiment plus que les adresses de la forme nom@machine.domaine
,
mais il y en a beaucoup d'autres.
D'où la réputation de complexité des logiciels de courrier comme sendmail.
En réalité :
sendmail
, il existe un kit de
configuration basé sur le macroprocesseur m4
Ci-dessous le fichier de configuration sendmail.mc
pour
un poste de travail qui se contente de transmettre tout son
courrier à un échangeur de courrier (mail.boutique.fr
):
divert(-1)
#
# client stupide pour domaine boutique.fr
# Adapté de /usr/share/sendmail/sendmail.cf/cf/clientproto.mc
#
divert(0)dnl
VERSIONID(@(#)stupide.mc')
OSTYPE(debian)
FEATURE(nullclient,mail.boutique.fr)
Cette machine expédie son courrier directement.
divert(0)dnl
VERSIONID(@(#)tcpproto.mc 8.10 (Berkeley) 5/19/1998')
OSTYPE(debian)
FEATURE(nouucp)
MAILER(local)
MAILER(smtp)
Documentation : fichier cf.README
livré avec sendmail.
Pour savoir si le courrier doit être livré sur place ou non :
FEATURE(`bestmx_is_local')
indique le courrier destiné à une certaine
adresse doit être livré sur place
si le DNS indique que nous sommes son serveur de courrier principal/etc/mail/local-host-names
Ici pour
OSTYPE(debian)
. Peut dépendre des configurations.
contient également une
liste de sites pour qui nous livrons le courrier sur place.Pour le déguisement de provenance (masquerading) :
MASQUERADE_AS(host.domain)
fait que le courrier envoyé
d'ici semblera venir du site host.domain
(par modification
des entêtes de messages). C'est utile pour ``normaliser'' l'adresse
de provenance
En particulier dans le cas où l'on relie un réseau privé à Internet : seule la machine de courrier possède un nom ``correct'' vis-à-vis des DNS du monde extérieur.
MASQUERADE_DOMAIN(otherhost.domain)
indique le courrier
provenant de l'adresse otherhost.domain
(que nous relayons)
sera aussi déguisé. FEATURE(`masquerade_entire_domain')
: si cette option
est selectionnée, MASQUERADE_DOMAIN
permet de désigner des
domaines entiers, pas seulement des machines individuelles. Exemple :
MASQUERADE_AS(courrier.institut-formation.fr)
MASQUERADE_DOMAIN(institut-formation.fr)
MASQUERADE_DOMAIN(stage)
FEATURE(`masquerade_entire_domain')
Les courriers émis depuis le réseau de test ``stage
'' seront
retransmis à l'extérieur, et sembleront provenir de
courrier.institut-formation.fr
, comme les autres machines
du réseau institut-formation.fr
.FEATURE(`masquerade_envelope')
déguisera les ``données d'enveloppe'' en plus des entêtes.FEATURE(`all_masquerade')
modifie également les
adresses du destinataireDes macros similaires s'appliquent au contrôle du relaying :
RELAY_DOMAIN(host.domain)
, FEATURE(`relay_entire_domain')
,
FEATURE(`relay_based_on_MX')
...
Voir documentation pour les détails.