IFmail

De Site à Mans
Révision datée du 15 mars 2012 à 17:04 par WikiSysop (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
Version 1.0 (2 Août 1996)


INTRODUCTON:
============

Cette documentation a pour but d'aider les utilisateurs de linux qui
désirent utiliser le package 'ifmail' d'Eugene Crosser pour gérer une base
de message fidonet (entre autre).

Elle a été rédigée suivant ma configuration qui est loin d'être simple. J'ai
essayé d'être aussi clair que possible; vous ne devriez donc pas avoir de
problème pour mettre en place le système...

Néammoins avant de commencer; vous devez avoir un système 'stable'
comprenant:

- le kernel bien sûr
- un lecteur de news (peu importe lequel)
- un demon de gestion de news (ici inn)
- un demon de transport d'email (ici sendmail)
- une config réseau contenant au moins le 'localhost'


COMPILATION DE IFMAIL:
======================

Cette documentation est basée sur la version 2.8e de ifmail sur laquelle a
été appliquée le patch 'tx-7.0' de Pablo Saratxga.

La première chose à faire est donc de se procurer les deux archives
necessaires par exemple sur ftp.ipb.fr:

dir /pub/linux/sunsite/system/Fidonet

 270391 ifmail-2.8e.tar.gz
  83738 ifmail-2.8e_to_2.8e-tx7.0.tgz

Sous root vous devez donc faire:

root:~$ cd /usr/src/
root:/usr/src$ tar xvfz ifmail-2.8e.tar.gz
root:/usr/src$ tar xvfz ifmail-2.8e_to_2.8e-tx7.0.tgz
root:/usr/src$ cd ifmail
root:/usr/src/ifmail$ cat ../ifmail-2.8e_to_2.8e-tx7.0.diff | patch -E -p1

Ce qui a pour effet de décompacter le package ifmail et de lui appliquer le
patch tx-7.0

A partir de ce moment là vous avez donc les sources de ifmail 2.8e-tx7.0
prêts à être compilés.

A noter que des patchs sortent régulièrement et qu'il faut donc appliquer
les patchs les uns à la suite des autres mais bien sûr dans l'ordre
croissant des numéros de versions.

Avant la compilation; il faut vérifier les données du fichier CONFIG pour
voir si elles correspondent bien à votre système; en particulier les chemins
des répertoires au début du fichier.


Ensuite pour lancer la compilation:

root:/usr/src/ifmail$ make


ERREUR DE COMPILATION.
======================

<!> sur certains systems il se peut que vous rencontriez ce genre
d'erreur :

expect 6 shift/reduce conflicts
yacc parsedate.y
make: /usr/bin/make: cannot execute binary file
make[1]: *** [parsedate.c] Error 126
make[1]: Leaving directory `/usr/local/src/ifmail/iflib'

Dans ce cas, pas de panique. Il faut juste aller dans ifmail/iflib et
mettre en remarque la ligne qui contiend :

ifmail/iflib/Makfile :

parsedate.c:    parsedate.y
        @echo expect 6 shift/reduce conflicts
#       ${YACC} parsedate.y
        mv y.tab.c parsedate.c
        @echo expect 4 warnings compiling parsedate.c


En suite ecrivez : yacc parsedate.y (ou bison --yacc parsedate.y)
		   make
                   cd ..
                   make


De meme, appliquez la meme methode pour enlever la meme erreur pour le
repertorie de "ifcico".


INSTALLATION DE IFMAIL:
=======================

Reste ensuite à effectuer l'installation. Bizarrement il semble qu'il faille
créer le répertoire de ifmail à la main sinon l'installation ne fonctionne
pas.

D'autre part avant l'installation il faut bien veiller à ce que le système
comprenne un certains nombres d'utilisateurs et de groupes.

Fichier /etc/passwd:

mail:*:8:12:mail:/var/spool/mail:
postmaster:*:14:12:postmaster:/var/spool/mail:
uucp:*:10:14:uucp:/var/spool/uucppublic:
news:*:9:13:news:/usr/lib/news:
fnet:*:15:14:FidoNet:/usr/lib/ifmail:

Le premier numéro de chaque ligne est le numéro de user; il n'a pas
d'importance (à part qu'il doit être unique dans le fichier).
Le deuxième numéro est le numéro du groupe de cet user.

Fichier /etc/group:

mail::12:mail
news::13:news
uucp::14:uucp,fnet

Pour lancer l'installation il suffit donc de faire:

root:/usr/src/ifmail$ md /usr/lib/ifmail
root:/usr/src/ifmail$ chown fnet.uucp /usr/lib/ifmail
root:/usr/src/ifmail$ make install

Reste ensuite à créer la configuration.

Pour créer le répertoire contenant les fichiers de config:

root:/usr/src/ifmail$ cd /etc/
root:/etc$ md ifmail
root:/etc$ chown fnet.uucp ifmail
root:/etc$ chmod 750 ifmail

On recopie ensuite les fichiers de config par défaut:

root:/etc$ cd ifmail
root:/etc/ifmail$ cp /usr/src/ifmail-2.8e-tx7.0/misc/config .
root:/etc/ifmail$ cp /usr/src/ifmail-2.8e-tx7.0/misc/Areas .

Il reste ensuite à modifier le fichier Areas suivant vos besoins. Vous
disposez pour cela du fichier par défaut et de mon fichier pour vous
inspirer. Il faut aussi modifier le fichier config bien sûr.

Pour expliquer un peu la config que j'utilise: je reçois (pour le moment)
uniquement des messages venant de réseaux tels que fido; rien ne passe par
l'internet.
Je suis abonné à 5 réseaux que je récupère sur 2 BBS distints:

|-----------|-----------|-----------|--------------|
|    BBS    | Réseaux   | Adr BBS   | Adr Point    |
|-----------|-----------|-----------|--------------|
| TheBBS    | fidonet   | 2:320/107 | 2:320/107.16 |
|           | NeST      | 90:800/1  | 90:800/1.16  |
|           | atarinet  | 51.901/1  | 51:901/1.16  |
|-----------|-----------|-----------|--------------|
| CanadaDry | fidonet   | 2:321/1   | 2:321/1.16   |
|           | globalnet | 52:3300/1 | 52/3300/104  |
|-----------|-----------|-----------|--------------|

Il faut ensuite créer le répertoire de travail de ifmail; c'est à dire là où
ifmail va créer et gérer les packets; ainsi que le répertoire contenant les
nodelists (sans nodelist; ifmail ne pas appeler un BBS!):

root:/etc/ifmail$ cd /usr/spool
root:/usr/spool$ md ifmail
root:/usr/spool$ chown fnet.uucp ifmail
root:/usr/spool/ifmail$ md nodelist
root:/usr/spool/ifmail$ chown fnet.uucp nodelist
#root:/usr/spool/ifmail$ md inb
#root:/usr/spool/ifmail$ chown fnet.uucp inb
#root:/usr/spool/ifmail$ md outb
#root:/usr/spool/ifmail$ chown fnet.uucp outb

Il faut aussi créer le repertoire contenant les fichiers de log:

root:/usr/spool/ifmail$ cd /var/log
root:/var/log$ md ifmail
root:/var/log$ chown fnet.uucp ifmail
root:/var/log$ chmod 750 ifmail

Si le fichier des alias n'existe pas il faut en créer un vide:

root:/var/log$ cd /etc/ifmail
root:/etc/ifmail$ touch aliases
root:/etc/ifmail$ chown fnet.uucp aliases

Idem pour la database:

root:/etc/ifmail$ cd /usr/spool/ifmail
root:/usr/spool/ifmail$ touch ifdbm
root:/usr/spool/ifmail$ chown fnet.uucp ifdbm

Il faut ensuite créer le répertoire contenant les tables de translation des
différents jeux de caractères:

root:/usr/spool/ifmail$ cd /etc/ifmail
root:/etc/ifmail$ md maptabs
root:/etc/ifmail$ chown fnet.uucp maptabs
root:/etc/ifmail$ cd maptabs
root:/etc/ifmail/maptabs$ cp /usr/src/ifmail/misc/maptabs/* .
root:/etc/ifmail/maptabs$ chown fnet.uucp *

L'installation de ifmail est terminée. Il reste maintenant à configurer le
transport de news et le transport d'email bien sûr...


CONFIGURATION NEWS:
===================

Pour les news il faut bien sûr créer les newsgroups et pour cela se reporter
à la documentation adequat (News-HOWTO en particulier). Il faut ensuite
créer ou modifier le fichier newsfeeds dans /usr/lib/news (ou autre).
Il faut donc router les articles sur chaque réseau correctement et éviter
les mélanges. Pour cela il est conseillé de prendre comme racine de nom de
chaque newsgroup le nom du réseau.

fichier /usr/lib/news/distrib.pats
---------------------------------------------------------------------------
##  $Revision: 1.1 $
##  distrib.pats -- specify default Distribution header for newsgroups
##  Format:
##	<weight>:<pattern>:<value>
##  All articles are matched against all patterns, value to be used is the
##  one with the highest weight.
##	<weight>	The weight assigned to this match, integer
##	<pattern>	Newsgroup name or single wildmat(3) pattern
##	<value>		Value of Distribution header.
##
##  This file contains the "inet" newsgroups from Gene Spafford's
##  checkgroup message <spaf-ickgrp_711615023@cs.purdue.edu> posted on
##  20 Jul 92 06:50:24 GMT; it is probably out of date.
10:loc.*:local
10:gna.*:fidonet
10:gn.*:globalnet
10:a.*:atarinet
10:n.*:nest
---------------------------------------------------------------------------

fichier /usr/lib/news/active:
---------------------------------------------------------------------------
junk 0000000253 0000000237 y
control 0000000001 0000000002 y
loc.Test 0000000029 0000000025 y                      -> Réseau local
loc.Raceme 0000000051 0000000047 y
gna.starwars 0000013090 0000009574 y                  -> Réseau fidonet
gna.aids.fr 0000000010 0000000010 y
gna.cyberloi.fr 0000000025 0000000017 y
gna.fiction.fr 0000001169 0000000429 y
gna.hardware.fr 0000006780 0000005767 y
gna.internet.fr 0000001627 0000000792 y
gna.jeux.fr 0000002173 0000001158 y
gna.linux.fr 0000004433 0000003810 y
gna.medical.fr 0000000201 0000000031 y
gna.presse-info.fr 0000000097 0000000056 y
gna.satellite.fr 0000000057 0000000015 y
gna.science.fr 0000000067 0000000049 y
gna.shareware.fr 0000000453 0000000187 y
gna.software.fr 0000000040 0000000023 y
gna.tele-cine.fr 0000000141 0000000089 y
gna.telecoms.fr 0000003645 0000002721 y
gna.win95.fr 0000000891 0000000403 y
gna.www.fr 0000000173 0000000151 y
gna.x-files.fr 0000000753 0000000675 y
gna.321net 0000000005 0000000001 y
gna.fm.alimentation 0000000000 0000000001 y
gna.fm.bourse 0000000000 0000000001 y
gna.fm.genealogie 0000000000 0000000001 y
gna.fm.internet 0000000000 0000000001 y
gna.fm.jeux 0000000000 0000000001 y
gna.fm.musique 0000000000 0000000001 y
gna.fm.rpg 0000000000 0000000001 y
gna.fm.windows 0000000000 0000000001 y
gn.fr.cinema 0000000036 0000000036 y                  -> Réseau globalnet
gn.fr.touraine 0000000051 0000000044 y
n.falcon.misc 0000002208 0000001816 y                 -> Réseau NeST
n.fr.adm.point 0000002935 0000002111 y
n.fr.misc.news 0000000011 0000000008 y
n.fr.misc.prog 0000000013 0000000010 y
n.fr.misc.techno 0000000016 0000000017 y
n.fr.parx 0000000519 0000000299 y
n.fr.sup.diderot 0000000046 0000000036 y
n.fr.sup.tosfax 0000000028 0000000024 y
n.fr.sup.parx 0000000159 0000000120 y
n.sup.parx.modules 0000000101 0000000087 y
n.thebbs.loc 0000000611 0000000449 y
---------------------------------------------------------------------------

Il faut donc ensuite gérer les feeds de ces groupes pour que les articles
postés localement partent lors des polls. Pour cela on utilise le fichier
newsfeeds.

fichier /usr/lib/news/newsfeeds:
---------------------------------------------------------------------------
##  $Revision: 1.12 $
##  newsfeeds - determine where Usenet articles get sent
##  Format:
##	site[/exclude,exclude...]\
##		:pattern,pattern...[/distrib,distrib...]\
##		:flag,flag...\
##		:param
##  Summary of flags:
##	<size		Article must be less then size bytes.
##	Aitems		Article checks -- d (must have Distribution header)
##			p (don't check for site in Path header).
##	Bhigh/low	Internal buffer size before writing to output.
##	H[count]	Article must have less then count hops; default is 1.
##	Isize		Internal buffer size (if a file feed)
##	Nm		Only moderated groups that match the patterns.
##	Nu		Only unmoderated groups that match the patterns.
##	Ssize		Start spooling if more than size bytes get queued.
##	Ttype		Feed types -- f (file) m (funnel; param names the
##			real entry) p (pipe to program) c (send to stdin
##			channel of param's sub-process); x (like c, but
##			handles commands on stdin).
##	Witems		What to write -- b (article bytesize) f (full path)
##			g (first newsgroup) m (Message-ID) n (relative
##			path) s (site that fed article) t (time received)
##			* (names of funnel feed-in's or all sites that get
##			the article) N (Newsgroups header) D (Distribution
##			header) H (all headers) O (overview data) R
##			(replication data).
##  Param field depends on T flag.  For Tf, relative paths are from the
##  out.going directory.  For Tp and Tc, it is a shell command to execute.
##  If a Tm refers to this entry (which will have its own T param) then "*"
##  is expanded to all the funnel sites that triggered this one.  Useful
##  for spawning one mail process, e.g.
##
##  This file is complicated -- see newsfeeds.5!

##  This is the local site.
##  The "pattern" field gives the intial subscription list for
##  all other sites.  You might want to put "!control,!junk,!<local>.*"
##  there.  The "distrib" subfield limits incoming articles.
#   ME\
#   	:*,!foo.*/world,usa,na,gnu,bionet,pubnet,u3b,eunet,vmsnet,inet,ddn,\
#   	k12\
#   	::
#   
#   # Feed all moderated source postings to an archiver
#   source-archive\
#   	:!*,comp.sources.*\
#   	:Tp,Nm:/news/bin/archive %s
#   
#   # Feed all local non-internal postings to nearnet; sent off-line via
#   # nntpsend or send-nntp.
#   nic.near.net\
#   	:!junk/!foo\
#   	:Tf,Wnm:nic.near.net
#   
#   # A real-time nntplink feed
#   uunet\
#   	:/!foo\
#   	:Tc,Wnm:/news/bin/nntplink -i stdin news.uu.net
#   
#   # Capture all Foo, Incorporated, postings
#   capture\
#   	:*/foo\
#   	:Tp,H2:/usr/lib/news/capture %s
#   
#   # A UUCP feed, where we try to keep the "batching" between 4 and 1K.
#   ihnp4\
#   	:!junk,!control/!foo\
#   	:Tf,Wfb,B4096/1024:

# Local:
ME\
        :!*,!junk,!control\
        ::

# TheBBS: AtariNet
#f1.n901.z51.atarinet.ftn/f1.n901\
#       :!*,a.*/!local,!fidonet,!globalnet,!nest\
#       :Tf,Wfb,B4096/1024:

# TheBBS: NeST
f1.n800.z90.nest.ftn/f1.n800\
        :!*,n.*,!n.raceme.loc/!local,!fidonet,!globalnet,!atarinet\
        :Tf,Wfb,B4096/1024:

# CanadaDry: FidoNet
f1.n321/f1.n321\
        :!*,gna.*/!local,!globalnet,!atarinet,!nest\
        :Tf,Wfb,B4096/1024:

# CanadaDry: GlobalNet
f1.n3300.z52.globalnet.ftn/f1.n3300\
        :!*,gn.*/!local,!fidonet,!atarinet,!nest\
        :Tf,Wfb,B4096/1024:
---------------------------------------------------------------------------


CONFIGURATION MAIL:
===================

Tout est configuré dans les fichier /etc/sendmail.cf; comme ce fichier est
horriblement long; pas question de le mettre ici en entier.
A vous de récupérer les morceaux et de les insérer au bon endroit en
répérant le début.

---------------------------------------------------------------------------
##################
#   local info   #
##################

# Ici tous les noms de machine pour lesquels c'est consideré comme local
Cwlocalhost Raceme Raceme.frmug.fr.net p16.f1.n901.z51.atarinet.ftn f104.n3300.z52.globalnet.ftn p16.f1.n800.z90.nest.ftn p16.f1.n321.z2.fidonet.org p16.f107.n320.z2.fidonet.org

#Les pseudo-domaines; ils n'appelent pas le DNs, même si tu en as un
CPz1.fidonet.org z2.fidonet.org z3.fidonet.org z4.fidonet.org z5.fidonet.org z6.fidonet.org ftn uucp

...

#####################
#   Trusted users   #
#####################

Troot
Tdaemon
Tuucp
# ici j'ajoute fnet comme trusted user
Tfnet

...

########################################
# resolve locally connected UUCP links #
########################################

R$* < @ $=Z . UUCP. > $*	$#uucp-uudom $@ $2 $: $1 < @ $2 .UUCP. > $3
R$* < @ $=Y . UUCP. > $*	$#uucp-new $@ $2 $: $1 < @ $2 .UUCP. > $3
R$* < @ $=U . UUCP. > $*	$#uucp-old $@ $2 $: $1 < @ $2 .UUCP. > $3

# resolve remotely connected UUCP links (if any)

# resolve fake top level domains by forwarding to other hosts

# forward other UUCP traffic straight to UUCP
R$* < @ $+ .UUCP. > $*		$#uucp $@ $2 $: $1 < @ $2 .UUCP. > $3	user@host.UUCP

##########################################
#    FIDONET.ORG   and   FTN   Routing   #
##########################################

# l'ordre a de l'importance
# le format est:
# "R" <pattern> "<" "@" <pattern> "." ">" <pattern> <tabulation> "$#"<transport> "$@" <hote> "$:" <adresse reecrite> [ <tab> <commentaires> ]
# donc "R" (pour recognize ?) suivi d'un masque qui s'il correspond a l'adresse
# d'un message active la ligne. Dans ce masque, le nom de machines est entre 
# "< >", le "@" est dedans. $* signifie n'importe quelle chaine, y compris la
# chaine nulle. $+ une chaine d'au moins un element. $- une chaine d'exactement un seul 
# element. l'adresse est terminee par un point, car ici elles arrivent canonicees
# (avec un point a la fin). 
# Ensuite une tabulation (important !) puis le transport (ex: $#smtp) la
# machine a contacter pour delivre via ce transport; "$:" (qui signifie reecrire
# l'adresse) et reecrire l'adresse. ici $1, $2, $3, ... correspondent aux jokers
# du premier terme.

#le net 2:320 est routé sur TheBBS (2:320) tout le reste sur CanadaDry (2:321)
R$* < @ $+ .n320.z2.fidonet.org. > $*		$#fnet $@ f107.n320 $: $1 < @ $2 .n320.z2.fidonet.org > $3

# le reste de fidonet (il vaut mieux faire z1 à z6 plutot que *.fidonet.org 
# pour eviter qu'il prenne le cas "fidonet.fidonet.org" ou "www.fidonet.org" etc
R$* < @ $+ .z1.fidonet.org. > $*		$#fnet $@ f1.n321 $: $1 < @ $2 .z1.fidonet.org > $3
R$* < @ $+ .z2.fidonet.org. > $*		$#fnet $@ f1.n321 $: $1 < @ $2 .z2.fidonet.org > $3
R$* < @ $+ .z3.fidonet.org. > $*		$#fnet $@ f1.n321 $: $1 < @ $2 .z3.fidonet.org > $3
R$* < @ $+ .z4.fidonet.org. > $*		$#fnet $@ f1.n321 $: $1 < @ $2 .z4.fidonet.org > $3
R$* < @ $+ .z5.fidonet.org. > $*		$#fnet $@ f1.n321 $: $1 < @ $2 .z5.fidonet.org > $3
R$* < @ $+ .z6.fidonet.org. > $*		$#fnet $@ f1.n321 $: $1 < @ $2 .z6.fidonet.org > $3

# autres réseaux (les domaines correspondent à ce que tu as defini dans
# /etc/ifmail/config, domtrans (ex: domtrans   .z51.fidonet  .z51.AtariNet.ftn)
R$* < @ $+ .atarinet.ftn. > $*			$#fnet $@ f1.n901.z51.atarinet.ftn $: $1 < @ $2 .atarinet.ftn > $3
R$* < @ $+ .globalnet.ftn. > $*			$#fnet $@ f1.n3300.z52.globalnet.ftn $: $1 < @ $2 .globalnet.ftn > $3
R$* < @ $+ .nest.ftn. > $*			$#fnet $@ f1.n800.z90.nest.ftn $: $1 < @ $2 .nest.ftn > $3

# les autres .FTN
# (je ne sais pas si tu as un endroit par defaut ou les envoyer; ici j'ai un
# feed qui est connecte a pas mal de reseaux; je lui envoie tout le reste *.ftn
# il y a des chances pour qu'il sache comment faire suivre, sinon il a un programme
# 'tracker' qui renvoie a l'expediteur.) Pour toi tu peux peut-etre envoyer a
# la poubelle, ou retourner a l'expediteur.

## tu passes au hote 122:25/15 disons
#R$* < @ $+ .ftn. > $*			$#fnet $@ f15.n25.z122.ftn $: $1 < @ $2 .ftn > $3
## ou à la poubelle 
#R$* < @ $+ .ftn. > $*			$#local $: nobody
##ou retour à l'expediteur ($#error est un peu special, apres "$:" il y a un petit 
## message inclus dans la reponse du "mailer-daemon"
#R$* < @ $+ .ftn. > $*			$#error $: I doesn't know how to reach that network

###############################
# Ici c'est les adresses INET #
###############################

# Tant que tu n'as que fido, utilise ceci par exemple (2:292/875 est la 
# passerelle officielle pour l'europe, mais si tu en connais une meilleure...)
#R$* < @ $* . > $*		$#fnet $@ f1.n321 $: $1 % $2 <@f875.n292.z2.fidonet.org> $3
#R$* < @ $* . > $*		$#fnet $@ f1.n800.z90.nest.ftn $: $1 % $2 <@f106.n100.z90.nest.ftn> $3
R$* < @ $* . > $*		$#fnet $@ f1.n321 $: $1 % $2 <@p2.f24.n24.z2.fidonet.org> $3
# Passerelle internet sur le réseau NeST (Network atari ST)
#
#R$* < @ $+ .nest.ftn. > $*			$#fnet $@ f1.n800.z90.nest.ftn $: $1 < @ $2 .nest.ftn > $3
#
#
#R$* < @ $* . > $*		$#error $: $1 % $2 <@f106.n100.z90.nest.ftn> $3

##################################################
###   Local and Program Mailer specification   ###
##################################################

#####  @(#)local.m4	8.6 (Berkeley) 10/24/93  #####

Mlocal,		P=/usr/bin/deliver, F=lsDFMShP, S=10, R=20/40,
		A=deliver $u
Mprog,		P=/bin/sh, F=lsDFMeu, S=10, R=20/40, D=$z:/,
		A=sh -c $u

S10
R<@>			$n			errors to mailer-daemon
R$+			$: $>40 $1

S20
R$+ < @ $* >		$: $1			strip host part

S40
R$* < @ $* > $*		$@ $1 < @ $2 > $3	already fully qualified
R$*			$: $1 @ $M		add local qualification
R$* @			$: $1 @ $j		if $M not defined

#####################################
###   FNET Mailer specification   ###
#####################################
#Mfnet,          P=/usr/lib/ifmail/ifmail, F=msDFMuC, S=11, R=21,
#                A=ifmail -xabcdefghijklmnopqrstuvwxyz -r $h -g h $u
Mfnet,          P=/usr/lib/ifmail/ifmail, F=msDFMuC, S=11, R=21,
                A=ifmail -r $h -g h $u

#"-r $h" is required as ifmail requires packet routing address.
#-g h is hold flavour.
---------------------------------------------------------------------------


CONFIGURATION IFMAIL:
=====================

Allons voir dans le répertoire /etc/ifmail maintenant...

Fichier /etc/ifmail/Areas:
---------------------------------------------------------------------------
# Conversion of areatags to newsgroups (with distribution) and back.
# AREA                  newsgroup               	distribution

# If you compile with -DJE, the format is:
# AREA		newsgroup	 distribution	rfc-charset	FTN-CHRS
#
# "rfc-charset" is the charset used in the rfc (usenet/email) side. It must
# be in the format used in MIME headers (ex: iso-8859-1, koi8-r, EUC-kr,...)
# "FTN-CHRS" is the charset used in the FTN side. It must be in the format
# used in ^aCHRS: kludges, whitout de level number (ex: LATIN-1, KOI8, EUC-KR)
# See file README.charset for a list of recognized rfc-charset and FTN-CHRS

8BIT.FR			gna.8bit.fr		fidonet	iso-8859-1	IBMPC
AFAS.FR			gna.afas.fr		fidonet	iso-8859-1	IBMPC
AIDS.FR			gna.aids.fr		fidonet	iso-8859-1	IBMPC
AMSTRAD.FR		gna.amstrad.fr		fidonet	iso-8859-1	IBMPC
CDROM.FR		gna.cdrom.fr		fidonet	iso-8859-1	IBMPC
CYBERLOI.FR		gna.cyberloi.fr		fidonet	iso-8859-1	IBMPC
DEBAT-OS.FR		gna.debat-os.fr		fidonet	iso-8859-1	IBMPC
FICTION.FR		gna.fiction.fr		fidonet	iso-8859-1	IBMPC
FRANCENET		gna.francenet		fidonet	iso-8859-1	IBMPC
FROGNET			gna.frognet		fidonet	iso-8859-1	IBMPC
HARDWARE.FR		gna.hardware.fr		fidonet	iso-8859-1	IBMPC
INTER-BBS		gna.inter-bbs		fidonet	iso-8859-1	IBMPC
INTERNET.FR		gna.internet.fr		fidonet	iso-8859-1	IBMPC
JDR.FR			gna.jdr.fr		fidonet	iso-8859-1	IBMPC
JEUX.FR			gna.jeux.fr		fidonet	iso-8859-1	IBMPC
LINUX.FR		gna.linux.fr		fidonet	iso-8859-1	IBMPC
MEDICAL.FR		gna.medical.fr		fidonet	iso-8859-1	IBMPC
PRESSE_INFO.FR		gna.presse-info.fr	fidonet	iso-8859-1	IBMPC
RESEAUX.FR		gna.reseaux.fr		fidonet	iso-8859-1	IBMPC
SATELLITE.FR		gna.satellite.fr	fidonet	iso-8859-1	IBMPC
SCIENCE.FR		gna.science.fr		fidonet	iso-8859-1	IBMPC
SHAREWARE.FR		gna.shareware.fr	fidonet	iso-8859-1	IBMPC
SOFTWARE.FR		gna.software.fr		fidonet	iso-8859-1	IBMPC
SON.FR			gna.son.fr		fidonet	iso-8859-1	IBMPC
STARWARS		gna.starwars		fidonet	iso-8859-1	IBMPC
TELE-CINE.FR		gna.tele-cine.fr	fidonet	iso-8859-1	IBMPC
TELECOMS.FR		gna.telecoms.fr		fidonet	iso-8859-1	IBMPC
UNIX.FR			gna.unix.fr		fidonet	iso-8859-1	IBMPC
VIRUS.FR		gna.virus.fr		fidonet	iso-8859-1	IBMPC
WIN95.FR		gna.win95.fr		fidonet	iso-8859-1	IBMPC
WWW.FR			gna.www.fr		fidonet	iso-8859-1	IBMPC
X-FILES.FR		gna.x-files.fr		fidonet	iso-8859-1	IBMPC
321NET			gna.321net		fidonet	iso-8859-1	IBMPC
FM_ALIMENTATION		gna.fm.alimentation	fidonet	iso-8859-1	IBMPC
FM_BOURSE		gna.fm.bourse		fidonet	iso-8859-1	IBMPC
FM_GENEALOGIE		gna.fm.genealogie	fidonet	iso-8859-1	IBMPC
FM_INTERNET		gna.fm.internet		fidonet	iso-8859-1	IBMPC
FM_JEUX			gna.fm.jeux		fidonet	iso-8859-1	IBMPC
FM_MUSIQUE		gna.fm.musique		fidonet	iso-8859-1	IBMPC
FM_RPG			gna.fm.rpg		fidonet	iso-8859-1	IBMPC
FM_WINDOWS		gna.fm.windows		fidonet	iso-8859-1	IBMPC
GN.FR.CINEMA		gn.fr.cinema		globalnet	iso-8859-1	IBMPC
GN.FR.TOURAINE		gn.fr.touraine		globalnet	iso-8859-1	IBMPC
N.FALCON.MISC		n.falcon.misc		nest	iso-8859-1	IBMPC
N.FR.ADM.POINT		n.fr.adm.point		nest	iso-8859-1	IBMPC
N.FR.MISC.NEWS		n.fr.misc.news		nest	iso-8859-1	IBMPC
N.FR.MISC.TECHNO	n.fr.misc.techno	nest	iso-8859-1	IBMPC
N.FR.MISC.PROG		n.fr.misc.prog		nest	iso-8859-1	IBMPC
N.FR.PARX		n.fr.parx		nest	iso-8859-1	IBMPC
N.FR.SUP.DIDEROT	n.fr.sup.diderot	nest	iso-8859-1	IBMPC
N.FR.SUP.TOSFAX		n.fr.sup.tosfax		nest	iso-8859-1	IBMPC
N.FR.SUP.PARX		n.fr.sup.parx		nest	iso-8859-1	IBMPC
N.SUP.PARX.MODULES	n.sup.parx.modules	nest	iso-8859-1	IBMPC
THEBBS.LOC		n.thebbs.loc		nest	iso-8859-1	IBMPC

# Line with a single '*' in the "AREA" field defines default newsgroup
# and distribution.  '*' in the "newsgroup" field, if present, is expanded
# to the original areatag (converted to lowcase).

*			junk.*			local

# Line with a single '*' in the "newsgroup" field defines default areatag.
# '*' in the "AREA" field, if present, is expanded to the original
# newsgroup (converted to uppercase).  (Distribution is insignificant).

#BAD.*			*

# You can specify a line with a single asterisk in the "AREA" field and
# a single asterisk in the "newsgroup" field.  It will cause a reversible
# conversion - areatag will be an uppercased newsgroup, and a newsgroup 
# will be a lowercased areatag.  This is not recommended.

# *			*			world




# Line with a single '*' in the "AREA" field defines default newsgroup
# and distribution.  '*' in the "newsgroup" field, if present, is expanded
# to the original areatag (converted to lowcase).

*                       fido.*                  	fido

# You can specify a line with a single asterisk in the "AREA" field and
# a single asterisk in the "newsgroup" field.  It will cause a reversible
# conversion - areatag will be an uppercased newsgroup, and a newsgroup 
# will be a lowercased areatag.  This is not recommended.

# *                     *                       world
---------------------------------------------------------------------------

Fichier /etc/ifmail/config:
---------------------------------------------------------------------------
# Configuration file for ifmail (ifgate+ifcico) package by Eugene Crosser
# Compile-time default name of this file may be overridden by -I key.

# Lines with the first nonblank character '#' are comments.

# Log file name. Overrides compile-time default.
logfile		/var/log/ifmail/iflog

# Debug file name. Overrides compile-time default.
debugfile	/var/log/ifmail/ifdebug

# Debugging verbosity (is overidden by -x key). Default is 0.
verbose		0

# Main address:
address		2:321/1.16@fidonet

# AKAs:
address		90:800/1.16@nest
address		51:901/1.16@atarinet
address		2:320/107.16@fidonet
address		52:3300/104@globalnet

# Passwords for connections. checked by ifcico.
# Inserted into EMSI and yoohoo packets.
password	2:321/1		XXXXXXXX
password	52:3300/1	XXXXXXXX
password	2:320/107	YYYYYYYY
password	90:800/1	YYYYYYYY
password	51:901/1	YYYYYYYY

# Passwords for packets.
# iftoss will tell you if the password of the packet doesn't match. (and it
# won't be tossed if -DPARANOID specified at compile-time)
# Inserted into outgoing mail packets.
# If for a given node no paacketpasswd is specified, password will be used.
#packetpasswd	2:5929/6	AZERTY

# Include config extention file (here: file with real passwords).
# Includes may be nested. If the nesting is cyclic, the program cycles too.
# You are warned.
#include		/etc/ifmail/passwds

# System alias file - try to fetch ftn-style aliases from there.
# If "from" address of a message from FidoNet matches _right_ side
# of some entry in sysalias file, then the Reply-To: header is created
# in the RFC message with the name part taken from the left side of the
# sysalis entry and domain part taken from myfqdn (below). E.g., if a 
# fidonet message comes from "John Smith of 1:234/567.89@fidonet" and 
# there is an entry in the sysalias file:
# "jsmith:	John.Smith@p89.f567.n234.z1.fidonet.org"
# and fqdn value is "pccross.msk.su", then the resulting message will
# contain a line: "Reply-To: jsmith@pccross.msk.su".
sysalias	/etc/ifmail/aliases

# This host fully qualified domain name to add to the alias above
myfqdn		Raceme.frmug.fr.net

# If this is specified, beginning of the fidonet message will be scaned
# for RFC looking headers _only_ if the message is addresses to the name
# specified.  If not specified, beginning of all message is scaned.  I
# DO NOT recommend specifying magicname unless you know that parsing
# headers will really break things.
magicname	UUCP

# Directory for incoming packets/files:
inbound		/var/spool/ifmail/inb
# Directories for "listed" and "protected" sessions
listinbound	/var/spool/ifmail/inb
protinbound	/var/spool/ifmail/inb

# Directory for outgoing packets (default domain and zone):
# other zones will be like "/usr/spool/fnet/outb.003",
# other domains will be like "/usr/spool/fnet/<domain>.<zone>"
outbound	/var/spool/ifmail/outb

# If you specify this, outgoing arcmail files will go to `outbound',
# but be reffered as being in `dosoutbound' in the .flo files
# This is intended for using ms-dos mailers, ifcico won't been able to
# handle that.
#dosoutbound    h:\spool\ifmail\outb

# Directory from which the file requests are satisfied
#public		/var/spool/uucppublic
public		/pub

# Directory with executables to satisfy "magic" file requests
# if requested a file present in this directory, it will be
# executed and stdout sent to the remote system.  If the file
# is not executable, it is read line by line and the lines are
# processed as if they were received file requests (recusively).
# Execution of commands may compromize security!  You are warned.
#magic		/usr/lib/ifmail/magic

# Primary nodelist (serves "outbound" directory and domain from the
# first "address" statement). Name expanded with ".NNN" if neccessary.
nodelist	/var/spool/ifmail/nodelist/fidonet

# Secondary nodelists and nodelists for other domains.
# use directory name from the first "nodelist" statement.
#		filename	originating address
nodelist        atarinet        51:901/1@atarinet
nodelist        fidonet         2:321/1@fidonet
nodelist        globalnet       52:3300/1@globalnet
nodelist        nest            90:800/1@nest

# domain translations, just context substitution.  Leading dot recommended.
# May contain '@'-sign too.  First matching used.
# NOTE: If you specify at least one domtrans line, there will be _NO_
# default for fidonet <--> fidonet.org.  Don't forget to specify it
# explicitly as a last line.
#		FTN side		Internet side
domtrans        .atarinet       .atarinet.ftn
domtrans        .globalnet      .globalnet.ftn
domtrans        .nest           .nest.ftn
domtrans        .z51.fidonet    .z51.atarinet.ftn
domtrans        .z52.fidonet    .z52.globalnet.ftn
domtrans        .z90.fidonet    .z90.nest.ftn
# fidonet (zones 1 -> 6 )
domtrans        .z1.fidonet             .z1.fidonet.org
domtrans        .z2.fidonet             .z2.fidonet.org
domtrans        .z3.fidonet             .z3.fidonet.org
domtrans        .z4.fidonet             .z4.fidonet.org
domtrans        .z5.fidonet             .z5.fidonet.org
domtrans        .z6.fidonet             .z6.fidonet.org
# default (the rest)
domtrans	.fidonet		.ftn

# Automatically updated alias database.  If omitted or inaccessible,
# ^aREPLYADDR and ^aREPLYTO kludges are generated in fido messages.
database	/var/spool/ifmail/ifdbm

# Sequencer file (used to generate unique IDs)
sequencer	/var/spool/ifmail/seq

# Areas file (format: "AREA newsgroup distribution")
areas		/etc/ifmail/Areas

# Bad groups prefixes - do not pass to fido if appear in Newsgroups header
# This is NOT the same as "!news.group" in the cnews "sys" file.
#badgroup	relcom.ads.
#badgroup	relcom.commerce.

# Maximum allowed number of groups in the Newsgroups header, article will
# not be gated if exeeds.  If zero or omitted - no limit.
# Another way of limiting the number of messages gated is to not define a
# general line in the Areas file, so messages are generated only for areas
# explicitely defined. 
# Is better to not define maxgroups and don't define a generic ng -> ECHO
# gating rule in Areas
#maxgroups	10

# Directory where character translation tables (for eight-bit charsets) are.
# 
# The format of the files is as follows:
#
# <orig.char> <whitespace> <dest.char>
#
# (one character in a line).  <orig.char> and <dest.char> can be specified
# in one of four notation styles:
# - character itself in single quotes (e.g. 'a')
# - decimal number (e.g. 123)
# - octal number (e.g. 0123)
# - hexadecimal number (e.g. 0x7f)
#
# Crosshatch ('#') denotes start of comment; space, tab and crosshatch
# characters cannot be specified using the first (character) notation.
#
maptabdir	/etc/ifmail/maptabs

# Transport programs for mail and news, used by iftoss
# for sendmail, $F expands to "from" address, $T - to "to" address.
sendmail	/usr/sbin/sendmail -oi -f $F $T
rnews		/usr/lib/news/rnews

# Toss program, used by ifunpack
iftoss		/usr/lib/ifmail/iftoss

# Unpackers, used by ifunpack. 
# $F expands to archive file name
unzip		/usr/bin/unzip -Lojq $F
unarj		/usr/bin/unarj e $F
unlzh		/usr/bin/lha xi $F
unarc		/usr/bin/unpack $F
unzoo		/usr/bin/zoo -extract $F
unrar		/usr/bin/unrar e $F

# Packer program, used by ifpack
# $F expands to archieve file name, $P - to list of packet names
packer		/usr/bin/zip -q $F $P

# Maximum arcmail file size, ifpack will start new arcmail file if exceeds
maxfsize	500000

# Maximum packet size, ifmail/ifnews will start new packet if exeeds.
# *.?ut files are NOT created if nonzero specified, you must run ifpack
# to make packets go out.
maxpsize	30000

# Flavors that should not be subject to packet size limiting.  These
# flavors will be put into `ready to send' packets and not packed
# by ifpack.  Special flavor 'm' means "all netmail".
nonpacked	cm

# cnews log file and (temporary) database for seen-bys
newslog		/usr/lib/news/log
msgidbm		/tmp/ifmsgids

# From this line on, values may be prefixed by a logical expression in
# round brackets. Operators are: '!', '&', '|', 'Xor'.
# Possible elements are:
# - Nodelist flags (like "CM", "MNP", "V32" etc.)
# - speed <operator> <numeric>
#         where <operator> is '=', '!=', '<', '>', '<=', '>='
# - address <wildcard>
#         where <wildcard> is a (possibly incomplete) fidonet address, 
#         e.g. "5020/*"
# - time <interval>[,<interval>,...]
#         where <interval> is a day spec. with optional time spec., e.g.
#         Wk2000-0900,Sat1800-0000,Sun
# - phone <prefix>
#         e.g. "phone 7-095-"

# Dialing parameters
# of multiple "ModemPort", "ModemReset", "ModemDial", "ModemHangup" lines, 
# first matching is used.
# of multiple "PhoneTrans", "ModemConnect", "ModemError" lines, all matching 
# are used.
# In send and expect strings, following substitutions are made:
# \\	'\' character
# \r	carriage return (0x0d)
# \n	new line (0x0a)
# \t	tab (0x09)
# \b	backspace (0x08)
# \s	space (0x20)
# \NNN	(where N is an octal digit) - character with octal code NNN
# \d	1 second delay (send strings only)
# \p	1/4 second pause (send strings only)
# \T	translated telephone no. (send strings only)
# \D	untranslated telephone no. (send strings only)

# ModemPort present a blank-separated list of ports with possible speed
# extention (separated by colon); if speed is prefixed with 'L', it is
# a "locked" port speed, otherwise it is a maximum speed to be set, while
# actual speed is taken from the nodelist.  If speed is omitted (or set
# to zero), previous port speed is not changed.
#ModemPort	(time Any0000-0900,Sat,Sun) ttyS0
ModemPort	ttyS3:L38400

# PhoneTrans lines provide rules to change phone prefixes to make local
# or long-distance calls.  In the example below, my country code is 7,
# and local dialing area is 095.  From the numbers starting with "7-095-"
# the prefix is stripped and the 7-digit remainder is dialed.  For
# the numbers starting with "7-" but not with "7-095-", the country prefix
# "7-" is stripped and the long-distance dialing prefix "8W" substituted. 
# For the numbers not matching any of the above, international
# call is performed: international dialing prefix "8W10" is prepended
# to the unmodified 11-digit number.  Generally, the syntax is:
# "PhoneTrans <what-to-strip> / <what-to-substitute-instead>"
PhoneTrans	33-1	/	161
PhoneTrans	33-	/	
PhoneTrans		/	19
ModemReset	ATZ\r
ModemDial	AT&F&C1&D2&R1L3V1Q0X4&W0F0D\T\r
ModemDial	ATD\T\r
ModemHangup	ATH\r
ModemOK		OK
ModemConnect	CONNECT
ModemError	BUSY
ModemError	NO\sCARRIER
ModemError	NO\sDIAL
ModemError	RING\r
ModemError	ERROR

# Timeouts to wait for "OK" and "CONNECT", cannot be prefixed by logical
# expression.
TimeoutReset	3
TimeoutConnect	70

# Call options (time, address and nodelist flag dependant)
# All matching are applied in the order they are specified.
# Possible options are "[No]Call", "[No]Hold", "[No]PUA", "[No]EMSI",
# "[No]WaZOO", "[No]Freqs", "[No]Zmodem", "[No]ZedZap", "[No]Janus",
# "[No]Hydra". Here, WaZOO stands for YooHoo/2U2 handshake, not for
# the transfer scheme. FTS-0001 handshake and DietIFNA scheme cannot
# be disallowed (because they are mandatory by standart).  "Hold" 
# means really hold "hold" type packets and files: do not send them
# if our system initiated the session, "NoHold" means  send "hold"
# packets when our system initiated the session. "NoPUA" stands for
# "No PickUp All", i.e. PUP ("Pick Up Primary").  NoCall means do not
# perform outbound call.  This flag has no effect on the nodes
# explicitly specified in the command line.
# Default options are "everything allowed".
options		(time Any0000-2359) NoHold

# EMSI data for this node
# From this line on values CANNOT be prefixed with logical expression
# For now, escaping of '}' and ']' unimplemented, try to avoid these
# characters please!
Name		Raceme Headquarter
Location	Fondettes, France
SysOp		Christophe Boyanique
Phone		33-1-47421791 (voice)
Speed		14400
Flags		XA,V32B,V42B
---------------------------------------------------------------------------


UTILISATION:
============
Bon voilà tout est configuré; il ne reste plus qu'à poller pour recevoir le
courrier. Le conseil du jour est de faire tout ça de manière automatique (de
tout façon un ordinateur sous linux est fait pour tourner 24h/24). Le
meilleur moyen d'automatiser les tâches sous linux est d'utiliser le daemon
crond ('man crond' pour plus d'infos).

Pour l'envoi du mail; sendmail se charge tout seul d'appeler ifmail qui
fabriquera les packets.

Pour l'envoi des news; il faut lancer le fichier send-ifmail (à installer
dans le répertoire /usr/lib/news). Il suffit donc de rajouter dans la
crontab de l'utilisateur news (/usr/spool/cron/crontabs/news):

---------------------------------------------------------------------------
#
# Envoie les articles en spool
00 * * * *      /usr/lib/news/rnews -U
#
# Purge quotidienne des news
#
15 04 * * *     /usr/lib/news/bin/news.daily < /dev/null
#
# Envoie du courrier FTN vers ifmail
#
30 04 * * *     /usr/lib/news/send-ifmail
---------------------------------------------------------------------------

Il suffit ensuite de compresser les packets, poller chaque BBS et
décompresser les packets reçus. Ces trois opérations se font dans le fichier
crontab de l'utilisateur fnet.
Lorsque l'on lance ifmail sans argument; celui-ci va poller les nodes
contenant du crash-mail. Pour le forcer à poller; il suffit donc de créer un
fichier vide avec l'extension '.clo' Pour CanadaDry par exemple ce sera le
fichier /usr/spool/ifmail/outb/01410001.clo

    141 = 321 en hexa
    1 = 1 !!!???!!!

Ce qui représente l'adresse 2:321
---------------------------------------------------------------------------
#
# Compactage du courrier 4:45
#
45 04 * * * /usr/lib/ifmail/ifpack
#
# Fichier de poll à 5:00 pour CanadaDry (Fido) & TheBBS (NeST)
#
00 05 * * * touch /usr/spool/ifmail/outb/01410001.clo
00 05 * * * touch /usr/spool/ifmail/nest/03200001.clo
#
# Appel des deux BBS
#
00,05,10,15,20,25,30,35,40,45,50,55 05 * * * /usr/lib/ifmail/ifcico -r1
#
# Virer les fichiers de poll à 06h00
#
00 06 * * * rm -f /usr/spool/ifmail/nest/03200001.clo
00 06 * * * rm -f /usr/spool/ifmail/outb/01410001.clo
#
# Décompactage du courrier
#
15 06 * * * /usr/lib/ifmail/ifunpack
---------------------------------------------------------------------------


CONCLUSION:
===========

Bon cette doc est terminée. Ce n'est qu'un premier jet et elle est assez
succinte mais je manque de temps.
Si vous utilisez cette doc et rencontrez des manques; n'hésitez pas à me
contacter pour la compléter.
Vous pouvez m'envoyer du netmail au 2:321/1.16; ou vous connecter à ma
machine en libre-accés de 21h30 à 5h00 UNIQUEMENT au 47.42.17.91 (province).

Christophe Boyanique - Ecrivain de cette fabuleuse doc :)
Jose Mans - erreur de compilation sur systemes bugges :)