# # Le sendmail.cf de MAILHOST_LABO.ipgp.jussieu.fr # # Renseignements, reclamations sur ce fichier sendmail.cf : # mail Postmaster@ipgp.jussieu.fr # # Renseignements, reclamations sur le kit de generation de sendmail.cf : # 1- d'abord consulter la doc : # http://www.prism.uvsq.fr/~pda/kit-jussieu/ # 2- ensuite, si la reponse ne figure pas dans la doc : # mail Pierre.David@prism.uvsq.fr, ou # mail Sebastien.Vautherot@ccr.jussieu.fr # ############################################################################### # VERSION DU FICHIER DE CONFIGURATION ############################################################################### # # Ce fichier de configuration est adapte a la derniere version # de sendmail... (enfin, pas celle de la nuit derniere... ;-) # Ce n'est pas vraiment fondamental, mais ça évite les warnings ! # V10 ############################################################################### # MAILERS ############################################################################### # # Les flags des mailers (seuls les plus importants) : # a : (v8) utilise ESMTP # A : (sauf v8) le mailer est compatible ARPANET # C : si le mailer recoit une adresse sans "@", il ajoute le domaine # D : le mailer attend une ligne "Date:" dans le header # e : le mailer coute cher et les courriers attendent dans la file # E : (v8) remplacer les "From" par des ">From" dans le corps du message # f : le mailer attend le flag "-f" dans le cas d'un forward # F : le mailer attend une ligne "From:" dans le header # g : (v8) le mailer ne sait pas accepter une adresse de retour nulle # h : case-sensitive pour les noms de site # I : le mailer communique par SMTP avec un autre sendmail # l : mailer local # L : limite la longueur des lignes (cf RFC 821) (obsolete par v8) # m : le mailer peut envoyer plusieurs utilisateurs en une seule operation # M : le mailer attend une ligne "Message-Id:" dans le header # n : ne pas inserer une ligne "From" aux messages # p : met le return path sous forme d'une "source route" # P : le mailer attend une ligne "Return-Path:" dans le header # r : idem f, mais envoie le flag "-r" # s : enleve les quotes autour des adresses avant d'appeler le mailer # S : ne change pas le user-id avant d'appeler le mailer # u : case-sensitive pour les noms d'utilisateur # U : le mailer attend une ligne "From" dans le style "uucp" # X : utilise l'algorithme "hidden dot" (cf RFC 821) # x : le mailer attend une ligne "Full-Name:" dans le header # 7 : (v8) tronque les caracteres a 7 bits # # # Mailer "smtp" : connections SMTP # Flags : # C : ajoute le domaine si pas de "@" dans l'adresse # D : le mailer attend une ligne "Date:" dans le header # F : le mailer attend une ligne "From:" dans le header # M : le mailer attend une ligne "Message-Id:" dans le header # X : utilise l'algorithme "hidden dot" (cf RFC 821) # a : (v8) utilise ESMTP (si pas v8, ce flag est ignore) # m : le mailer peut envoyer plusieurs utilisateurs en une seule op. # s : enleve les quotes autour des adresses (ne surtout pas le mettre) # u : case sensitive pour les noms d'utilisateur # Msmtp, Path=[IPC], Flags=CDFMXamu, Eol=\r\n, Linelimit=990, Sender=11, Recipient=21, Argv=TCP $h # # Mailer "local" : delivre les mails locaux # Flags : # D : le mailer attend une ligne "Date:" dans le header # F : le mailer attend une ligne "From:" dans le header # M : le mailer attend une ligne "Message-Id:" dans le header # P : le mailer attend une ligne "Return-Path:" dans le header # l : ce mailer est local, utilise pour l'expedition finale # m : le mailer peut envoyer plusieurs utilisateurs en une seule operation # n : ne met pas de ligne "From" # r : idem f, mais envoie le flag "-r" # s : enleve les quotes autour des adresses # 9 : convertit les 7 bits QP en 8 bits # : : accepter les ":" (inclusion de listes) dans les aliases # / : accepter les "/" (mail vers des fichiers) dans les aliases # | : accepter les "|" (mail vers des programmes) dans les aliases # q : utilise seulement en mode VRFY, ce qui ne nous importe pas beaucoup # Note : le nom "local" est impose # # # Attention : sur certaines versions d'HP-UX (8.0 par exemple), les # flags "n" et "r" doivent etre retires. # Mlocal, Path=/usr/bin/procmail, Flags=SAw5:|/@glDFMPhsfn, Sender=10/30, Recipient=20/40, T=DNS/RFC822/X-Unix, Argv=procmail -Y -a $h -d $u # # Mailer "prog" : utilise pour les aliases/forward conduisant a des programmes # Flags : # D : le mailer attend une ligne "Date:" dans le header # F : le mailer attend une ligne "From:" dans le header # M : le mailer attend une ligne "Message-Id:" dans le header # P : le mailer attend une ligne "Return-Path:" dans le header # e : ce mailer coute cher # l : ce mailer est local, utilise pour l'expedition finale # s : enleve les quotes autour des adresses # u : case-sensitive pour les noms d'utilisateur # o : lance le programme sous l'uid du destinataire # Pas de dependances de machines. # Note : le nom "prog" est impose # # Attention en v8 : pour etre autorise a executer le .forward, le shell # de l'utilisateur doit etre enregistre dans /etc/shells. Si l'utilisateur # ne doit pas avoir son shell dans /etc/shells, inclure la ligne : # /SENDMAIL/ANY/SHELL/ (ne pas oublier le "/" terminal). # (telle quelle) dans ce fichier. # Mprog, Path=/bin/sh, Flags=DFMPelsu9oq, Directory=$z:/, Sender=10, Recipient=20, Argv=sh -c $u # # Mailer "error" : il est defini automatiquement # ############################################################################### # MACROS LOCALES ############################################################################### # # Le host # DHMAILHOST_LABO # # Le domaine : # - la variable M contient le nom de domaine officiel # - la classe M (differente de la variable M) contient les noms abreges # DMipgp.jussieu.fr CM ipgp ipgp.jussieu ipgp.jussieu.fr # # Les parametres de l'expedition vers l'exterieur # On envoie tout a notre relais. # DR[mailhost.ipgp.jussieu.fr] # # Reecriture des champs "From" pour les adresses sur cette machine # (ou assimilee). # DLipgp.jussieu.fr # # La classe qui permet de reconnaitre nos suffixes propres. # CX LOCAL INTERNE EXTERNE ############################################################################### # MACROS STANDARD ############################################################################### # # Les macros "standard" de sendmail que nous devons definir manuellement : # V : sert d'identification de la version de ce sendmail.cf # m : domaine # j : host.domaine # e : message de bienvenue SMTP # l : le format de la ligne "From: " # o : les delimiteurs pour les regles de reecriture # n : le nom du pseudo-utilisateur pour les messages d'erreur # q : format des noms d'expediteur DVjtpda-5.4 Dj$H.$M DnMailer-Daemon Dq$g$?x ($x)$. ############################################################################### # OPTIONS ############################################################################### # # Options affectant le comportement de sendmail # a : (v8) attend N minutes pour l'apparition de @:@ dans les aliases # A : fichier des aliases # b : (v8) nombre minimum de blocs libres sur le disque pour ESMTP # B : (v8) caractere de remplacement des espaces # c : mettre les courriers pour les mailers "chers" dans la file d'attente # C : (v8) checkpoint de la file d'attente toutes les N minutes # d : mode de depot du courrier (i, b ou q) # D : reconstruction du fichier des alias automatiquement # e : affichage des erreurs # E : ajoute un message sympathique dans les erreurs renvoyees # f : preserve les lignes "From:" superflues # F : mode du fichier temporaire # g : group id des mailers # G : fuzzy matching on the Gecos field # h : (v8) max hop count # H : fichier de help de smtp # i : sendmail n'interprete pas "." comme une fin de message # I : si named ne tourne pas, ne fait pas confiance a /etc/hosts # j : (v8) envoie les messages d'erreur en format MIME # J : (v8) chemin d'acces aux fichiers .forward # k : (v8) nb max de connexions cachees # K : (v8) delai max de connexions cachees # l : (v8) envoie les erreurs a "Error to" # L : log level # m : envoie le message a l'expediteur aussi si mailing-list # M : initialise la valeur d'une macro # n : analyse les rhs des aliases # o : autorise les anciens formats (?) # O : options SMTP (parametres d'attente : port, famille, adresse, etc) # p : privacy options (public, goaway, noexpn, novrfy, etc.) # P : nom du Postmaster # q : comportement lors du depassement de la charge de l'option x # Q : repertoire servant de file d'attente # r : timeout de lecture (smtp) # R : (Sun) mode remote : envoyer le courrier sur le serveur NFS # R : (v8) elimine les source-route superflus # s : "super-safe", passe toujours par la file d'attente # S : fichier collectant les statistiques # t : (v8) timezone a utiliser # T : timeout dans la file d'attente (avant renvoi a l'expediteur) # u : user id pour les mailers # U : (v8) localisation de la user database # v : tourne sendmail en mode "verbose" # V : (v8) fallback MX host # w : (v8) si nous sommes le meilleur MX pour un site, envoyer directement # x : charge a partir de laquelle on met les courriers en attente # X : charge a partir de laquelle on refuse les connexions SMTP # y : penalise les messages avec beaucoup de destinataires # Y : traite chaque message de la queue dans un process distinct # z : favorise encore plus les messages prioritaires # Z : penalise les messages non envoyables depuis longtemps # 7 : (v8) tronque les caracteres a 7 bits # SmtpGreetingMessage : message d'accueil SMTP (ancienne macro e) # UnixFromLine : ???? (ancienne macro l) # OperatorChars : les caracteres separateurs (ancienne macro o) # OA/etc/mail/aliases Odbackground OF0600 #Og1 OH/etc/mail/helpfile OL9 Om Oo OPPostmaster OQ/var/spool/mqueue Or5m Os OS/etc/mail/statistics Ou1 Ox20 OX30 # # Les options propres a v8 # O7False Ob4 OC10 #ODFalse OfFalse Oh17 O ControlSocketName=/var/spool/mqueue/.control # # Option I : si le serveur de noms n'est pas joignable, c'est considere # comme une panne temporaire et le courrier est mis en attente dans la # file d'attente. # Si pour votre plus grand malheur vous n'utilisez pas le serveur de # noms, il ne faut pas mettre l'option I (commentez la ligne suivante). OI OjTrue OJ$z/.forward # Limitation des messages acceptes par sendmail a 16777216 octets # (en entree, via SMTP ou en local sur l'entree std, ou etc.) O MaxMessageSize=16777216 Ok0 OT3d OnTrue # # Il faut savoir que MH, lorsqu'il est configure pour dialoguer directement # avec un serveur SMTP, ne respecte pas la RFC 821, c'est a dire qu'il # n'envoie pas HELO lors de la connexion au serveur. # Dans ce cas, vous pouvez retirer le "needmailhelo" dans la ligne qui suit. # # Si vous voulez masquer la file d'attente, vous pouvez ajouter l'option # "restrictmailq", qui empeche toute utilisation de la commande "mailq", # sauf pour les membres du groupe proprietaire de /var/spool/mqueue. # Note : cette option n'a de sens que si vous supprimez les acces en lecture # au fichier de log de sendmail (mail.debug dans /etc/syslog.conf). # Opnoexpn,needmailhelo,needvrfyhelo,restrictqrun,authwarnings Ot # # Ces options sont propres a sendmail >= 8.7 et definissent la maniere dont # sont traites les messages contenant des donnees 8 bits "illegaux", # c'est a dire non identifies comme etant des messages MIME. # EightBitMode specifie la transformation a appliquer au corps : # strict : rejeter le message # mime : convertir en MIME # pass : passer le message tel qu'il est (sans le convertir en MIME) # Si on convertit en MIME, DefaultCharset est le jeu de caracteres # est le jeu de caracteres a mettre dans le champ "Content-Type". # O EightBitMode=mime O DefaultCharset=iso-8859-1 # # Message d'accueil SMTP # O SmtpGreetingMessage=$j Sendmail $v/$V ready at $b # # La ligne qui sert de separateur dans les boites aux lettres # O UnixFromLine=From $g $d # # Les caracteres separateurs # O OperatorChars=.:%@!^/[]+ # # A partir de la version 6 du fichier de configuration (ligne V du # fichier de configuration), on traite les ":" # # O ColonOkInAddr=true # # La classe q est liee a sendmail >= 8.8 et definit la categorie # de types MIME pour lesquels la conversion du flag 9 est autorisee. # (voir mailers prog et local). # Cq text/plain ############################################################################### # PRIORITES ############################################################################### # # Priorites des messages. # Par defaut, c'est 0 # La priorite peut etre modifiee par une ligne du type "Precedence: junk" # dans l'en-tete # Pfirst-class=0 Pspecial-delivery=100 Plist=-30 Pbulk=-60 Pjunk=-100 ############################################################################### # TRUSTED USERS ############################################################################### # # Les "trusted users" sont les noms des utilisateurs qui ont le droit # de changer le nom de l'expediteur, comme par exemple les logins "uucp". # T root daemon uucp listserv sympa ############################################################################### # FORMAT DES EN-TETES ############################################################################### H?P?Return-Path: <$g> HReceived: $?sfrom $s$?_ ($_)$.$|$?_from ($_)$.$. by $j ($v/$V)$?r with $r$. id $i $?ufor $u$.; $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> ############################################################################### # REGLES DE REECRITURE ############################################################################### # # La procedure 'sendmail' execute toujours les ensembles 3 puis 0 # pour l'envoi et la reception d'un courrier. # Les ensembles 3, 1, 10/11/12/... et 4 reecrivent les champs contenant des # adresses d'expediteur. # Les ensembles 3, 2, 21/21/22/... et 4 reecrivent les champs contenant des # adresses de destinataire. # Les ensembles 17, 18 et 19 sont appeles par les ensembles ci-dessus. # ############################################################################## # Ensemble 0 ############################################################################## # # Resolution du mailer # # Entree : une adresse sous forme canonique (c'est a dire apres l'ensemble S3) # Sortie : un triplet (mailer, host, user). La regle se termine lorsque # on arrive sur $#mailer $@host $:user # Note : le "user" est mis dans la macro "$u", mais c'est en fait # une adresse qui va passer par la regle 4 (comportement code en # dur de sendmail) pour la passer a un mailer. C'est une partie # de l'enveloppe. # S0 # # Traitement du cas special "sans adresse" # C'est le premier cas reconnu par l'ensemble S3. L'effet est d'envoyer # ca a Postmaster. # R<@.LOCAL> $#local $:$n # # Traitement des adresses numeriques (ca marche si DNS!) # Normalement, les adresses numeriques ont ete canonisees par la regle # 19. Si l'adresse est toujours numerique ici, on refuse d'envoyer le # courrier. # R$+<@[$+].EXTERNE>$* $#error $: host [$2] not registered, was in <$1@[$2]$3> # # Traitement des source-routes si nous sommes le premier relais sur # la liste : on enleve notre nom et on recommence # R<@$*.LOCAL>:$* $@ $>18 $2 # # Traitement du cas ou on fait user%labas@ici (source-route a la mode RFC 1123) # On enleve la partie "@ici" et on recommence avec "user%labas". # Note : si on fait "user@ici", on recommence avec "user". # Le "$+" est important pour distinguer le cas ou c'est "user@..." du cas # "user" tout seul (non qualifie). Dans le premier, on enleve jusqu'a # esperer arriver a "user" non qualifie, dans le deuxieme, on ne se rappelle # pas recursivement. # R$*<@$+.LOCAL>$* $@ $>18 $1 # # Traitement des courriers destines a ce site # R$*+$*<@$*.LOCAL>$* $#local $:$1 R$*<@$*.LOCAL>$* $#local $:$1 # # Traitement des courriers dans notre juridication # # On les envoie directement a la machine concernee R$*<@$*.INTERNE>$* $#smtp $@[$2] $:$1<@$2.INTERNE>$3 # # Tout ce qui reste est externe => envoi vers l'exterieur. # # # On passe tout ce qui n'est pas dans notre juridiction a $R # R$*<@$+.EXTERNE>$* $#smtp $@$R $:$1<@$2.EXTERNE>$3 # # Theoriquement, il ne peut plus rien rester (les adresses non # qualifiees a l'origine l'ont ete par la regle 19). # R$* $#error $: $1 : unrecognized address ############################################################################## # Ensemble 1 ############################################################################## # Pre-traitement du champ expediteur S1 # Traduction eventuelle de l'adresse R$* $:$>17 $1 ############################################################################## # Ensemble 2 ############################################################################## # Pre-traitement du champ destinataire S2 # Regle vide. ############################################################################## # Ensemble 3 ############################################################################## # # L'ensemble 3 est le prealable a tout traitement d'adresse. # # Entree : une adresse telle qu'elle a ete entree par l'utilisateur # La syntaxe des adresses est donnee par : # - La RFC 822, qui la definit precisement : # - adresses normales : # user@site # => canonisation : user<@site> # user@site (Texte de commentaire) # => presence de commentaires # => en fait, les commentaires () peuvent etre inseres # a tout moment dans l'adresse. # => canonisation : user<@site> # - adresses avec routage explicite (source-routes) : # <@site1,@site2:user@site3> # => envoi a site1, qui envoie a site2, etc.) # => canonisation : <@site1>:@site2:user@site3 # "Texte de commentaire" <@site1:user@site2> # => presence de commentaires # => canonisation : <@site1>:user@site2 # Texte de commentaire <@site1:user@site2> # => presence de commentaires (sans guillemets) # => canonisation : <@site1>:user@site2 # # => adresse source-route degeneree # => canonisation : user<@site> # - adresses de liste : # user1@site1, liste: user2@site2, user3@site3 ; , user4@site4 # => la "liste" comprend user2 et user3 # => le message est envoye a 1, 2, 3 et 4 # => cette adresse est pre-decoupee par sendmail # - adresses numeriques # user@[134.157.1.1] # => utilisation non recommandee # => canonisation : user<@[...]> # - La RFC 1123, qui amende la RFC 822 : # - les adresses "source-route" sont presque obsoletes # et leur utilisation n'est pas recommandee, il # faut utiliser le "%" # En particulier, aucun mailer ne devrait generer des # adresses avec source-route (sauf dans le cas degenere) # et on ne doit les reconnaitre que pour la compatibilite # avec les tres, tres, tres, tres vielles implementations. # On les accepte, mais il ne faut pas les renvoyer # telles quelles (cf. 5.2.6). # - "%" hack : # user%site1%site2@site3 # => le message est envoye au site3 # => canonisation : user%site1%site2<@site3> # - L'usage en vigueur dans le monde UUCP : # - les adresses "uucp pur" # site1!site2!...!siten!user # => ces adresses ne sont plus reconnues # => il faut explicitement fournir une passerelle # Sortie : # - une adresse sous forme canonique (voir exemples ci-dessus) # ...<@.... .classe>... # ^ ^ ^ ^ # | | | destine a la machine cible pour continuer le routage # | | | (cf source-route) # | | LOCAL, INTERNE ou EXTERNE (cf commentaire regle 19) # | adresse de la machine cible # | suffixee eventuellement par le routage # partie locale (a la machine cible) de l'adresse # - "<@>" en cas d'erreur (adresse vide) # - un nom d'utilisateur sans nom de host # - une adresse completement baroque... # S3 # # Si l'adresse que l'on recoit contient deja des "<>", il faut les eliminer # avant de continuer plus avant. Il n'est pas legal de placer des "<>" a # l'interieur d'une adresse. # R$*<$*>$*<$*>$* $2$3<$4>$5 R$*<$*<$+>$*>$* <$3>$5 R$*<$+>$* $2 # # Traitement du cas ou il n'y a pas d'adresse. La forme canonique est la # plus reduite possible (<@>). Les ensembles ulterieurs devront traiter ce cas. # R$@ $@ $>19 <@> 0 token => on canonise R$*<>$* $@ $>19 <@> # # Reconnaisance des adresses avec route. # # Une adresse avec route contient un ":" specifiant l'adresse finale # Il faut prendre le premier host de la liste et lui envoyer le reste # On change donc les "@a,@b,@c:user@d" en "<@a>:@b:@c:user@d" pour envoi a @a # R@$+,$+:$+ @$1:$2:$3 R@$+:$+ $@ $>19 <@$1>:$2 # # Reconnaissance des listes. # R$+:$*;@$+ $@ $1:$2;@$3 # # S'il y a un "@" dans l'adresse, on considere que c'est prioritaire. # S'il y a plusieurs "@", on prend le dernier. # R$+@$+ $: $1<@$2> R$+<$+@$+> $1$2<@$3> R$+<@$+> $@ $>19 $1<@$2> # # Canonisation du "%" hack (cf RFC 1123) # - "..%..%.." est transforme en "..%..@.." # - on se ramene ensuite au cas standard. # R$+%$+ $1@$2 R$+@$+@$+ $1%$2@$3 R$+@$+ $@ $>19 $1<@$2> # # Quand on arrive la, tout a ete reconnu, sauf les adresses sans nom de host # (ou les adresses du style uucp "a!b!c!d" ou les autres adresses encore # plus baroques qu'on n'a pas pu imaginer...) # On passe donc ca dans la regle 19 pour assurer la coherence. # R$* $@ $>19 $1 ############################################################################## # Ensemble 4 ############################################################################## # # C'est la re-ecriture fina-a-le... # # Entree : une adresse sous forme canonique (c'est a dire apres l'ensemble S3) # Sortie : une adresse prete a etre lue par un utilisateur # S4 R<@.LOCAL> $@ # # On remet les "," dans les source-route # R<@$+>$*:$+:$+ <@$1>$2,$3:$4 # # Si c'est une adresse non qualifiee, on enleve la forme canonique # R$*<@.LOCAL> $: $1 # # On remplace les marqueurs que nous avons mis dans la regle 19 # R$*<@$*.$=X>$* $: $1<@$2>$4 # # On enleve les "<>" de la forme canonique. # R$*<$+>$* $1$2$3 ############################################################################## # Ensemble 16 ############################################################################## # # Traduction des adresses non qualifiees pour passage a un autre mailer # pour que les autres mailers ne soient pas tentes de le faire eux-memes # (voir RFC 1123, section 5.2.18). # Cette regle n'est utilisee que par les regles des mailers vers l'exterieur. # S16 R<@.LOCAL> $@ <@.LOCAL> R$*<@.LOCAL>$* $@ $1<@$L.LOCAL>$2 ############################################################################## # Ensemble 17 ############################################################################## # # Traduction de l'adresse dans les champs "From:". # (ex: pda -> Pierre.David ou jt -> Jacky.Thibault) # S17 # # Reecriture des adresses locales # # on ne reecrit pas les adresses qui nous ont ete communiquees non # qualifiees. R$*<@$+.LOCAL>$* $: $1<@$L.LOCAL>$3 # Regle vide, pas de reecriture. ############################################################################## # Ensemble 18 ############################################################################## # # Enchaine 3 puis 0 # S18 R$* $: $>3 $1 R$* $@ $>0 $1 ############################################################################## # Ensemble 19 ############################################################################## # # Canonisation et reconnaissance des adresses locales # # Entree : une specification en format interne # ...<@...>... # Sortie : # - suffixe par .LOCAL # => l'adresse est consideree comme etant sur cette machine # - suffixe par .INTERNE # => l'adresse est consideree comme faisant partie de notre # juridiction, mais n'est pas sur notre machine. # - suffixe par .EXTERNE # => l'adresse est hors de notre juridiction # S19 # # Reconnaissance du cas particulier "Mailer-Daemon" # R$*<@>$* $@ <@.LOCAL> # # Reconnaissance des cas tordus pour localhost # R$*<@localhost>$* $: $1<@$j.LOCAL>$2 R$*<@localhost.$M>$* $: $1<@$j.LOCAL>$2 # # Reconnaissance des cas tordus pour les adresses "locales" # (comprend nos adresses IP numeriques en v8) # Cette regle recupere les cas tordus avant canonisation, ou les # cas tres standard. # R$*<@$=w>$* $: $1<@$j.LOCAL>$3 # # Tentative de canonisation des noms de host. # R$*<@$*$~X>$* $: $1<@$[$2$3$]>$4 on ne canonise pas ...LOCAL R$*<@$*.>$* $1<@$2>$3 v8 ajoute "." a la canonisation # # On fait deux fois cette regle (voir quelques lignes plus haut) pour # eviter que, apres canonisation, [127.0.0.1] soit transforme en # localhost.un-autre-domaine, en cas de configuration "bizarre" pour # le localhost dans le DNS. # R$*<@$=w>$* $: $1<@$j.LOCAL>$3 # # Traitement des cas particuliers en premier # # # Reconnaissance du cas general des adresses internes # # # Tout ce qui reste est : # - soit qualifie, auquel cas c'est externe # R$*<@$*.$=X>$* $@ $1<@$2.$3>$4 il y a deja .LOCAL ou .INTERNE R$*<@$*>$* $@ $1<@$2.EXTERNE>$3 # # - soit un cas tordu : l'adresse "@nimportequoi" est reconnue comme une # adresse locale, puis ensuite, tout se passe comme si sendmail enlevait # le "@" pour la remise physique, donc "nimportequoi" est cherche dans # les aliases. # Exemple : From Jacques Beigbeder : # quelqu'un me met dans son .forward: # @dmi # en oubliant son nom. Ca devient: # dmi (l'alias de mail!) # i.e. tous les utilisateurs du D.M.I., y compris lui. D'ou, # au premier mail qui lui arrive, avalanche de mails vers tout # le monde, sauf lui qui ne voit rien donc ne se doute de rien. # Resolution : on traite ce qui suit le "@" comme un nom de host, # et on laisse ce host se debrouiller avec une partie locale vide. # R@$+ $@ $>19 <@$1> cas vraiment tres tordu # # - soit non qualifie, auquel cas c'est une adresse sans nom de host. # On la qualifie par un ".LOCAL" seul pour se rappeler que c'est une # adresse non qualifiee, et on repasse dans la regle 19 pour utiliser # le cas general. # R$+ $@ $>19 $1<@.LOCAL> ############################################################################## # Ensemble 10 ############################################################################## # # traitement du champ expediteur pour local et prog # Ensembles 3,1,10,4 # S10 # S'il n'y a rien, c'est Mailer-Daemon R<@.LOCAL> $n # Qualifier les adresses locales. Ceci est utile en particulier pour # les gestionnaires de listes de diffusion : par exemple, lorsqu'ils # attendent un message d'un moderateur, ces robots attendent une # adresse qualifiee. Si le moderateur est local, il faut faire # apparaitre un "@" quelque part. R$* $: $>16 $1 ############################################################################## # Ensemble 11 ############################################################################## # # traitement du champ expediteur pour smtp # Ensembles 3,1,11,4 # S11 # Qualification des adresses non qualifiees. R$* $: $>16 $1 ############################################################################## # Ensemble 20 ############################################################################## # # traitement du champ destinataire pour local et prog # Ensembles 3,2,20,4 # S20 # Regle vide. ############################################################################## # Ensemble 21 ############################################################################## # # traitement du champ destinataire pour smtp # Ensembles 3,2,21,4 # S21 # Qualification des adresses non qualifiees. R$* $: $>16 $1 # # C'est fini... #