Copyright (c) 1993 by Eugene G. Crosser

This is a README file for ifmail - another Internet/FidoNet gateway

You may do virtually what you wish with this software, but you must
preserve the explicit reference to its original author:

Eugene G. Crosser <crosser@pccross.msk.su>, 2:5020/23.14@FidoNet

This should be considered a beta release. Use it on your own risk.
No warranty of any kind... OK, ya know all that stuff :-)

This piece of software was developed to fit into my current mail/news
environment: Smail 3.1 and Cnews. I honestly beleive that it also 
can be easily used with sendmail, but I had no chance to try it. 
I can tell nothing about INN, if you make it work (or fail to make it
work) with INN, please let me know. Ifmail program must run setuid owner
of fidonet related stuff. The current packet naming is BinkleyTerm,
with file/directory names in lowcase. Naming conventions are implemented
in a separate source file, pktname.c, to make modifications easier.
(I think that multizone/multipoint naming is currently incorrect. Please
let me know what it _must_ be.)

I am very sorry, but I really have no stomach to write any docs, so
here is a description of keys and files reference:

usage: ifmail -h -n -x<N> -I<file> -r<addr> <recip> ...
-h		get this help
-n		set news mode
-x<N>		set debug level to <N>	[0]
-I<file> 	use config file	<file>	[/usr/local/lib/fnet/ifconfig]
-r<addr>	address to route packet
<recip>		list of receipient addresses

Default is mail mode operation. In mail mode you must specify 
recepient(s) address(es) in the command line, in the form:
"Eugene.Crosser@p6.n5020.z2.fidonet.org". When the news mode is
in effect, i.e. "-n" key is specified or the program is called as
"ifnews", a news article (or batch) is expected on stdin. 
"-r" key is used to specify the destination of the packet, in the 
form "[pNN.]fNN.nNN[.zNN[.domain]]". In news mode if -r key is omitted 
the first recepient address is used as routing address, and if it
is absent, $NEWSSITE environment variable is used as routing adderss.

The opposite way program is called iftoss. It expects a non-arcmail
packet on stdin.

usage: iftoss -h -x<N> -I<file>
-h              get this help
-x<N>           set debug level to <N>  [0]
-I<file>        use config file <file>  [/usr/local/lib/fnet/ifconfig]

Both programs try to preserve as much information as possible in 
"X-FTN-..." headers and "^ARFC-..." kludges, and restore messages more 
or less accurately to their original form when double-gatewaying.

A dbm-based alias database is supported, so if a message passes from a
newsgroup to echo, the author's free form name and domain address are
stored, and when a netmail reply comes from fidonet to that free form 
name, it is passed to the remembered domain address.

Several addresses may be specified in the config file, netmail from
fidonet addressed to any of those addresses is assumed local and resolved
through the mentioned database, otherwise the mail will be routed through
the normal MTA (and presumably packed to some other fidonet node).
If there is a "To:" line at the beginning of the fido message, address
is taken from it (ONLY THE FIRST ONE!).

Message IDs are converted as follows: "^AMDGID: <address> <hexnum>"
is converted to "<decimalnum>@<address>". If there was no MSGID in the
fidonet message, messageid of the form <creation-time>@<from-address>
is generated, so that when a single message is gatewayed twice, it
will have the same messageid anyway (for some (little) risk of having
two different messages with the same messageid). RFC822 Message-IDs are
converted back when they can be, otherwise the messageid "<local>@<domain>"
is converted to "^AMSGID <domain> crc32("<local>")". When an RFC
message is split, unique MSGIDs are generated for all parts after
the first one. In any case, the original "Message-ID:" header is
preserved in the "^ARFC-Message-ID:" kludge and used if the message
comes back to usenet on some (other) gateway.

SEEN-BYs are not currently treated anyhow, only preserved and passed
back if neccessary. ^APATH information is included into the "Path:"
header. I have plans to use this information more intelligently
in the next release of the package.

There is also a feature to define "forbidden" groups. If a usenet
message is crossposted to some of the gated groups _and_ to some
of the forbidden groups it will not be gated to fidonet.

I am also going to write "ifpack" and "ifunpack" shells and include
them into the next release. (Currently these functions are performed 
by simple shell scripts at my node).

OK, try it...

Files reference

--- Example ifmail configuration files

config
Areas

--- Example news batch and mail messages and Fidonet packet

newsin
test
pkt

--- Example Smail configuration files

routers
transports
ftnpaths

--- Example cnews configuration files

sys
batchparms

--- Perl scripts to maintain the alias database

a2dbm
ldbm

--- Source code

Makefile, Version, *.c, *.h