sendmail : migration facile

トップ ページ

このメッセージに返信
著者: Nicolas Tripon
日付:  
To: guilde
題目: sendmail : migration facile
Pour ceux qui ont exprimé leur regret de ne pas utiliser 'sendmail' et qui
voudraient changer, voici mes fichiers de configuration. Ils sont courts
et assez faciles à comprendre. 'sendmail.cf' est la modification d'un
fichier trouvé dans l'excellent livre de Vixie et Avolio, "Sendmail -
Théorie et Pratique' (à lire ; on y apprend, par exemple, que 'syslog',
avant de devenir un utilitaire général, faisait partie de 'sendmail').
Le design est simple : le courrier envoyé par 'nt' (c'est mon login sur
ma machine 'alpha.beta') à 'nt', 'nt@localhost', 'nt@alpha' ou
'nt@???' sera donné au préposé 'local' ('procmail' dans RH 6.0 qui
me fait regretter 'slackware') pour distribution dans les boîtes aux
lettres ; tout autre courrier est donné au préposé 'smtp' qui utilisera
SMTP pour se connecter au relai défini par la macro $R (DR : define macro
R) ; dans ce cas, l'adresse de l'envoyeur sur l'enveloppe et dans
l'en-tête seront modifiées de 'nt...' en 'tripon@???' : S20
(c'est l'adresse de l'envoyeur dans l'en-tête qui permettra au
destinataire de faire un simple 'reply', sans avoir à corriger le login en
adresse de boîte aux lettres chez un FAI). Le courrier reçu chez le FAI
sera déchargé par 'fetchmail', qui l'enverra vers le port 25 de 'alpha',
l'adresse destinataire sur l'enveloppe étant 'nt@localhost' ('to nt here') ;
maintenant, 'sendmail' fera comme dans le premier cas, lorsque le message
était reçu de 'mutt'.
Les changement pour adaptation à votre cas sont répérés par '!!!'.
Attention : cut-and-paste dans 'xterm' transforme les tabulations en espaces,
ce qui serait une erreur pour les lignes commençant avec R.
Maintenant, si seulement quelqu'un pouvait me dire comment faire marcher
'ppp' en 'demand dial'.
-NT

--- sendmail.cf

# inspired from Sendmail - Frederic M. Avolio, Paul A. Vixie ;
# adapt around '!!!' to your case. -NT

# level 8 config file format
V8/Berkeley

# aliases for this host ; !!!
CW localhost alpha alpha.beta

# relay host for out-going mail ; !!!
DRmail.ISP.fr

# mandatory macros
De$j Sendmail $v ready at $b
Dj$w
DlFrom $g $d
Dnmailer-daemon
Do@._
Dq$?x$x <$g>$|$g$.

# options
O SevenBitInput=False
O EightBitMode=pass8
O TempFileMode=0600
O LogLevel=9
O DefaultUser=mail:mail
O QueueDirectory=/var/spool/mqueue

Pfirst-class=0
Pspecial-delivery=100
Pjunk=-100

Troot daemon uucp

# headers : if <flag> is set in mailer definition, insert ...
H?P?Return-Path: <$g>
H?F?Resent-From: $?x$x <$g>$|$g$.
H?F?From: $q
H?D?Resent-Date: $a
H?D?Date: $a
H?M?Message-Id: <$p.$t@$j>
H?R?Received: by $j ; $b
HSubject:

# routing (determines mailer, host, address) : S3, S0 ;
# delivery (contacts mailer) :
# sender (envelope & header) address : S3, S1, S=, S4 ;
# recipient (envelope & header) address : S3, S2, R=, S4 ;

# envelope address ruleset ; returns (mailer, host, address)
# $# - mailer ; $@ - destination host name ; $: - address given to $@
S0
R$-        $#local $:$1        user
R$*@$=W        $#local $:$1        user@local-host
R$*        $#smtp $@$R $:$1    anything else : smtp


S1
S2

# focuser : preprocess ruleset to convert address to internal form
S3
R$*<$+>$*    $2


# postprocess ruleset to convert back to external form
S4

S10

# rewriting sender envelope and header adress ; local login name, mailbox !!!
S20
Rnt$*        tripon@???


# P : path ; F : flags ; S : sender ruleset ; R : recipient ruleset ;
# A : arg. vector to pass to the programme ; E : end of line ;
# L : max. line size ; M : max. msg. size ;
# $h : destination host ($@ in S0) ; $u : user ($: in S0)

Mlocal,    P=/usr/bin/procmail, F=lsDFMRAw5:/|@qSPfhn9, S=10, R=10,
    T=DNS/RFC822/X-Unix, A=procmail -Y -a $h -d $u
Mprog,    P=/bin/sh, F=lsDFMoqu9, S=10, R=10, D=$z:/,
    T=X-Unix, A=sh -c $u
Msmtp,    P=[IPC], F=mDFMRuX, S=20, R=10, E=\r\n, L=990,
    T=DNS/RFC822/SMTP, A=IPC $h


--- .fetchmail

poll pop3.ISP.fr protocol POP3
user tripon ; password !!! ; to nt here ; fetchall

--- .procmailrc

VERBOSE=on
MAILDIR=$HOME/Mail
LOGFILE=$MAILDIR/log
INCLUDERC=$MAILDIR/rc

--- rc

:0
* ^From owner-linux38
linux

:0
gen