28.7. SMTP avec UUCP

La configuration de sendmail fournie avec FreeBSD est conçue pour les sites directement connectés à l'Internet. Les sites désirant échanger leur courrier électronique par l'intermédiaire d'UUCP doivent installer un autre fichier de configuration pour sendmail.

Modifier manuellement le fichier /etc/mail/sendmail.cf est un sujet réservé aux spécialistes. Dans version 8 de sendmail la génération des fichiers de configuration se fait par l'intermédiaire du processeur m4(1), où la configuration se fait à un haut niveau d'abstraction. Les fichiers de configuration m4(1) se trouvent dans le répertoire /usr/src/usr.sbin/sendmail/cf.

Si vous n'avez pas installé toutes les sources du système, l'ensemble des fichiers de configuration de sendmail a été regroupé dans une archive séparée des autres sources. En supposant que vous avez monté votre CDROM FreeBSD contenant les sources, faites:

# cd /cdrom/src
# cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail

Cette extraction ne donne lieu qu'à une centaine de kilo-octets. Le fichier README dans le répertoire cf pourra faire office d'une introduction à la configuration m4(1).

La meilleure façon d'ajouter le support UUCP est d'utiliser la fonctionnalité mailertable. Cela créé une base de données que sendmail utilise pour décider de la manière dont il va router le courrier électronique.

Tout d'abord, vous devez créer votre fichier .mc. Le répertoire /usr/src/usr.sbin/sendmail/cf/cf contient quelques exemples. En supposant que vous avez appelé votre fichier foo.mc, tout ce dont vous avez besoin de faire pour le convertir en un fichier sendmail.cf valide est:

# cd /usr/src/usr.sbin/sendmail/cf/cf
# make foo.cf
# cp foo.cf /etc/mail/sendmail.cf

Un fichier .mc classique devrait ressembler à ceci:

VERSIONID(`Votre numéro de version') OSTYPE(bsd4.4)

FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')

define(`UUCP_RELAY', votre.relai.uucp)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')

MAILER(local)
MAILER(smtp)
MAILER(uucp)

Cw    alias.de.votre.nom.de.machine
Cw    votrenomdenoeuduucp.UUCP

Les lignes contenant les directives accept_unresolvable_domains, nocanonify, et confDONT_PROBE_INTERFACES empêcheront l'utilisation du DNS lors de l'envoi du courrier électronique. La directive UUCP_RELAY est nécessaire pour le support de l'UUCP. Mettez juste un nom de machine Internet capable de gérer des adresses d'un pseudo-domaine .UUCP; la plupart du temps, vous mettrez le nom du serveur de messagerie de votre fournisseur d'accès.

Après avoir défini tout ceci, vous avez besoin d'un fichier /etc/mail/mailertable. Si vous n'avez qu'un seul lien avec l'extérieur qui est utilisé pour votre courrier électronique, le fichier suivant devrait suffire:

#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
.                             uucp-dom:your.uucp.relay

Un exemple plus complexe ressemblerait à ceci:

#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de   uucp-dom:horus
.interface-business.de        uucp-dom:if-bus
interface-business.de         uucp-dom:if-bus
.heep.sax.de                  smtp8:%1
horus.UUCP                    uucp-dom:horus
if-bus.UUCP                   uucp-dom:if-bus
.                             uucp-dom:

Les trois premières lignes gèrent les cas spécifiques où les courriers électroniques pour l'extérieur ne devraient pas être envoyés au serveur par défaut, mais plutôt à des serveurs UUCP voisins afin de “raccourcir” le chemin à parcourir. La ligne suivante gère le courrier électronique destiné au domaine Ethernet local et qui peut être distribué en utilisant le protocole SMTP. Et enfin, les voisins UUCP sont mentionnés dans la notation de pseudo-domaine UUCP, pour permettre à un courrier du type voisin-uucp !destinataire de passer outre les règles par défaut. La dernière ligne doit toujours être un point, ce qui correspond à tout le reste, avec la distribution UUCP vers un voisin UUCP qui sert de passerelle universelle de courrier électronique vers le reste du monde. Tous les noms de noeuds placés après le mot clé uucp-dom: doivent être des noms valides de voisins UUCP, que vous pouvez vérifier en utilisant la commande uuname.

Pour vous rappeler que ce fichier doit être converti en un fichier de base de données DBM avant d'être utilisable. La ligne de commande pour accomplir cette conversion est rappelée dans les commentaires au début du fichier mailertable. Vous devez lancer cette commande à chaque fois que vous modifiez votre fichier mailertable.

Pour finir: si vous n'êtes pas certain du bon fonctionnement de certaines configurations de routage du courrier électronique, rappelez-vous de l'option -bt de sendmail. Cela lance sendmail dans le mode test d'adresse; entrez simplement 3,0, suivi de l'adresse que vous désirez tester. La dernière ligne vous indiquera le type d'agent utilisé pour l'envoi, la machine de destination à laquelle l'agent doit envoyer le message, et l'adresse (peut-être traduite) à laquelle il l'enverra. Pour quitter ce mode tapez Ctrl+D.

% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 foo@example.com
canonify           input: foo @ example . com
...
parse            returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
> ^D

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.

Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.