Next Previous Contents

7. Configurer sendmail pour pouvoir utiliser uucp

Bonne nouvelle : il est très facile de configurer sendmail pour qu'il puisse utiliser la mailer uucp !

Typiquement il y a deux points à prendre en considération :

7.1 Utiliser les services du mailer uucp de sendmail

Il suffit de rajouter la ligne suivante dans le sendmail.mc :


         MAILER(local)dnl
         MAILER(smtp)dnl
    ---> MAILER(uucp)dnl

Attention, cette ligne doit bien être placée APRÈS les 2 lignes qui la précède !

Grâce à cette ligne, sendmail est maintenant en mesure d'invoquer rmail via uux comme le prouve l'extrait suivant de sendmail.cf :

  ---------------------------------<
  Muucp,   Path=/usr/bin/uux, Flags=DFMhmsu,
           Sender=12, Recipient=22, Argv=uux - -r $h!rmail ($u)
  ---------------------------------<

7.2 Rediriger les mails sortants vers le domaine uucp.

Il suffit d'utiliser une "mailertable" ! Ainsi on pourra diriger les mails sortants vers le domaine qu'on voudra !

À cet effet :

1) rajoutez dans votre sendmail.mc :

 --->  FEATURE(mailertable, hash /etc/mail/mailertable)dnl

ceci aura pour effet de créer une mailertable :/etc/mail/mailertable

2) renseignez la mailertable (voir exemple ci-dessous)

3) n'oubliez pas d'initialiser la mailertable par un

 makemap hash /etc/mail/mailertable < /etc/mail/mailertable

exemple de mailertable :


 #/etc/mail/mailertable sur batman 
 #
 # makemap hash /etc/mail/mailertable < /etc/mail/mailertable
 # -------------------------------------------------------------
 # domaine           transport:machine
 # -------------------------------------------------------------
 #
 ####### domaine local  <gotham.city> #########################
 batman.gotham.city               esmtp:batman
 robin.gotham.city                esmtp:robin
 robin.gyptis.frmug.org           uucp-dom:robin
 joker.gotham.city                uucp-dom:joker
 ##############################################################
 #
 #
 ########## OLEANE PAR SMTP ##################################
 dial.oleane.com                 esmtp:smtp.dial.oleane.com
 oleane.net                      esmtp:smtp.dial.oleane.com
 #############################################################
 #
 #
 ############ reste du monde ##################################
 .                               uucp-dom:gyptis
 ########################################################<EOF>#

Note : c'est la dernière ligne qui permet d'envoyer les mails par UUCP sur gyptis. Attention à bien utiliser "uucp-dom" et pas "uucp" tout court !

7.3 Astuce : comment ne pas envoyer les mails locaux sur le réseau ? (valable pour SMTP et/ou UUCP).

Régulièrement cette question est posée dans les news :

   « Comment faire pour que les mails destinées au réseau local
   ne soient pas d'abord envoyée sur le serveur de mail de notre
   FAI (Fournisseur d'Accès internet) ?? »

Pablo Saratxaga <srtxg@chanae.alphanet.ch> a trouvé une réponse satisfaisante. Je vous la livre ci-dessous avec une légère modification. Cette dernière est nécessaire dès lors que l'on emploie une mailertable.

Cette solution fonctionne parfaitement avec la version 8.8.5 de sendmail, que j'utilise, mais Pablo Saratxaga <srtxg@chanae.alphanet.ch> m'a confirmé qu'elle fonctionne aussi très bien avec la version 8.9.3 Il ne devrait donc pas y avoir, à priori, de problème avec les versions intermédiaires.

Tant qu'on y est, je vous livre mon sendmail.mc en entier. Le hack de Pablo y figure à la fin.

Pour le reste, je vous conseille vivement de vous reporter à la doc d'Éric Jacoboni disponible sur <http://www.linux-france.org/article/mail>

dnl *********************************************************************
dnl            .---.
dnl           /     \        
dnl           \.@-@./        /etc/sendmail.cf  de la machine batman
dnl           /`\_/`\
dnl          //  _  \\    Denis BRAUSSEN <denis@batman.gyptis.frmug.org>
dnl         |(_     )|_
dnl        /`\_`>  <_/ \        --- POWERED BY GNU/LinuX ---
dnl        \__/'---'\__/
dnl ********************************************************************
dnl
include(`../m4/cf.m4')dnl
OSTYPE(`linux')dnl
Cwlocalhost localhost.gotham.city batman.gyptis.frmug.org batman.gotham.city gotham.city batman
Djbatman.gyptis.frmug.org
define(`confCON_EXPENSIVE', `True')dnl
FEATURE(genericstable,``hash -N /etc/mail/revaliases'')
dnl NOTE générer la base avec :
dnl      /usr/sbin/sendmail -bi -oA/etc/mail/revaliases
FEATURE(mailertable, hash /etc/mail/mailertable)dnl
dnl NOTE générer la base avec :
dnl      makemap hash /etc/mail/mailertable < /etc/mail/mailertable
GENERICS_DOMAIN(batman.gotham.city batman)dnl
FEATURE(always_add_domain)dnl
FEATURE(nocanonify)dnl
FEATURE(redirect)dnl
FEATURE(masquerade_envelope)dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
FEATURE(local_procmail)dnl
define(`confCOPY_ERRORS_TO', `Postmaster')dnl
define(`confME_TOO', `True')dnl
define(`confDEF_CHAR_SET', `ISO-8859-1')dnl
define(`SMTP_MAILER_FLAGS', `e')dnl
define(`confMIME_FORMAT_ERRORS',`True')dnl
define(`confCF_VERSION', `GNU/LINUX (04-Oct-98)')dnl
define(`confTO_QUEUEWARN', `24h')dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(usenet)dnl  ( <--- optionnel. voir doc sendmail)
MAILER(uucp)dnl    
dnl
dnl
dnl -=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-
dnl
dnl From: Pablo Saratxaga <srtxg@chanae.alphanet.ch>
dnl Date: 12 Apr 1998 20:04:52 +0200
dnl Newsgroups: fr.comp.mail, fr.comp.os.linux
dnl Subject: truandage d'adresses
dnl ------------------------------------------
dnl "Le problème est le suivant: on dispose donc d'un accès à internet mais
dnl  pas de nom de domaine; on utilise le reverse aliasing des adresses,
dnl  sendmail fait ça très bien donc tout baigne.
dnl  Mais on voudrait aussi éviter, lorsque deux utilisateurs locaux s'écrivent,
dnl  d'envoyer sur internet et d'aller le chercher avec fetchmail, avec tous les
dnl  retards et coûts que cela implique.
dnl 
dnl Faire un peu l'inverse de genericstable en quelque sorte; changer des
dnl adresses user1@domaine1 -> userlocal1, user2@domaine2 -> userlocal2 etc."
dnl 
dnl ---------->
dnl
dnl Mettre dans /etc/mail/pirateo des lignes
dnl 
dnl usuario1@proveedor1.com  user1
dnl usuario2@proveedor2.com  user2
dnl 
dnl et generer la base pirateo par :
dnl
dnl makemap hash /etc/mail/pirateo < etc/mail/pirateo
dnl
dnl
dnl======================================================================
dnl  ATTENTION: INOPERANT SI MAILERTABLE ! (sauf si: voir ci dessous)
dnl  Denis BRAUSSEN added: LOCAL_RULE_0 pour que pirateo
dnl  puisse fonctionner malgre les mailertable 27-dec-98
dnl  (note: LOCAL_CONFIG et LOCAL_NET_CONFIG deviennent du coup inutiles) 
dnl======================================================================
dnl ###### Removed by Denis BRAUSSEN -------> LOCAL_CONFIG
# pirater quelques acounts sur des domaines tiers
Kpirateo hash -o /etc/mail/pirateo
dnl
dnl ###### Removed by Denis BRAUSSEN -------> LOCAL_NET_CONFIG
# pirateo
LOCAL_RULE_0
R$+ < @ $+ > $*            $: < $(pirateo $1 @ $2 $: $) > $1 < @ $2 > $3
R< $+ > $+ < @ $+ > $*     $@ $>97 $1
R<> $+ < @ $+ > $*         $: $1 < @ $2 > $3
dnl                  ^^^^^^ TABULATION ICI
dnl-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-
dnl                                                       ---<EOF>---

Tip : pour les version de sendmail supérieures (8.9.x) il sera peut être utile de rajouter les FEATURES suivantes (voir la doc de sendmail). Notez cependant que ceci n'a rien à voir avec UUCP.


     FEATURE(`accept_unresolvable_domains')dnl   
     FEATURE(accept_unqualified_senders)dnl
Cela désactivera certaines règles anti-spam et vous évitera d'avoir à lire ce genre de messages :

     « [192.168.x.x], reject=451 <guignol@foo.bar.net>...
       Sender domain must resolve »

Nicolas Chuche <chuche@soda.teaser.fr> de son côté, me fait savoir qu'il préfère utiliser une virtusertable assortie d'un sendmail.cw. Je vous donne les deux FEATURE à utiliser, quoique je préfère utiliser la méthode de Pablo qui permet une définition au cas par cas des mails à envoyer en local.

 -)  FEATURE(virtusertable, hash /etc/mail/virtusertable)dnl

   #exemple de /etc/mail/virtusertable  
   #----------------------------------
   chuche@soda.teaser.fr     nico
   gaspard@soda.teaser.fr    gaspard
   freyda@soda.teaser.fr     freyda
   #                     ^^^^
   #               TABULATION
   #---------------------------------

puis générer la database par un :

makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

-)  FEATURE(use_cw_file)dnl

   # sendmail.cw - include all aliases for your machine here.
   # -------------------------------------------------------
   soda.teaser.fr
   soda.solomon.fr
   soda.le-bar.fdn.fr
   # --------------------------------------------------------

7.4 Astuce : comment faire pour qu'uucico soit appelé dès qu'un mail arrive dans /var/spool/mqueue ?

Si votre machine dispose d'une laison TCP/IP permanente (typiquement: câble) et se connecte au serveur UUCP en passant par dessus TCP/IP, vous trouverez sans doute judicieux de faire en sorte que vos emails partent vers le serveur dès qu'elles arrivent dans la file d'attente. Cela est tout à fait possible en paramétrant les options du programme uux.

En effet un "man uux" nous apprend que c'est l'option -r d'uux qui empêche uucico de démarrer immédiatement. Cette option est mise par défaut dans le fichier de configuration de sendmail et c'est tout à fait normal : avec une ligne téléphonique normale (RTC) il serait absurde de vouloir se connecter dès qu'un mail est écrit.

ci dessous l'extrait du man d'uux qui nous intéresse :

       -r, --nouucico
            Do not  start  the  uucico  (8)  daemon  immediately;
            merely  queue up the execution request for later pro-
            cessing.

Il font donc changer les arguments du mailer uucp. Cela est trivial puisque dans le fichier /usr/src/contrib/sendmail/cf/README (l'emplacement peut être différent sur votre distribution) nous avons :

UUCP_MAILER_ARGS        [uux - -r -z -a$g -gC $h!rmail ($u)] The arguments
                        passed to the UUCP mailer.

La partie entre crochets montre les arguments par défaut. il suffit donc de mettre dans votre sendmail.mc la ligne :

define(`UUCP_MAILER_ARGS',`uux - -z -a$g -gC $h!rmail ($u)')dnl

puis de reconstruire votre sendmail.cf et redémarrer sendmail s'il tourne en mode daemon.

7.5 UUCP et le SPAM

On appelle SPAM le courrier non sollicité. Généralement il s'agit de publicités douteuses du genre "Devenez riche et célèbre sans rien faire" dont notre boîte aux lettres se passerait bien.

Étienne de Tocqueville <et@steph.teaser.fr> a écrit un patch qui permet de filtrer les emails selon leur enveloppe. Il est disponible sur : <http://www.teaser.fr/u/edetocquev/uucp/>.

Nota : bien que cela n'ait rien à voir avec sendmail, j'ai trouvé logique d'inclure cette information dans le chapitre qui parle du mail.


Next Previous Contents