Ifmail converts RFC-822 compliant mail and RFC-1036 compliant
news to FTN packets. It 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.
The default mode is the mail mode of operation. In mail mode, you must
specify recepient address(es) on the command line, in the form:
The first recepient address is used as the routing address, if no routing
address is specified. In news mode then the $NEWSSITE environment
variable is used as the routing address.
When the news mode is in effect, (i.e. "-n" key is specified or the
program is called by alias "ifnews") a news article (or batch) is
expected on stdin.
Ifmail will 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 an echo, the authors free form name and domain address are
stored, and when a netmail reply comes from fidonet to that free form name,
it is passed as a mail message to the remembered domain address.
ATTENTION: This mechanism will not work if you specify fidonet-style
address as the "visible name" in your MTA. Do not do it! Even if you
dont have an official Internet domain, use something.uucp as your
primary machine name, NOT fN.nM.zL.fidonet.org.
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 aforementioned 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, the address is taken from
(ONLY THE FIRST ADDRESS!).
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.
On the way from news to echo, if the node to which the packet is being
created is present in an "X-FTN-SEEN-BY:" header, the message is not
included in the packet. SEEN-BY lines in the messages included into
the packet consist of (1) your node primary address, (2) copy of
"X-FTN-SEEN-BY:" header(s), (3) ftn addresses that could be parsed
from the CNews file "$NEWSCTL/log" in the line with the corresponding
Message-ID. For the latter to work, you should have a Cnews compatible
log file available for reading and have an "ndbm" package. This works
with INN too.
ATTENTION: your feed name in the cnews "sys" file should be fNNN.nMMM or
pNNN.fMMM.nLLL, without zone and domain, see the examples included
with the source distribution.
In some cases, though, you will need to specify zone and/or domain of
the feed, e.g. if you are exporting echomail to several networks. In
such case, specify the "cutdown" fNNN.nMMM notation after the slash, to
prevent exporting back (Refer the your news systems manual). This trick
may also be useful if your hub presents non-primary AKA in the echomail
it gives you.
Ifmail does make some attempt to process file attaches, but only locally.
Not passing to the Internet and back, but if a fileattach netmail
message is routed from one fidonet node to another, it probably will
take the attached file with it.
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 passed to any fidonet echoes.
Messages with "Control:" headers are also not passed to FidoNet.
Display a short help message.
Set the debug verbosity
verbosity may be a number from 0 to 32 to set on bits from 1 to number, or
a string of letters where a = bit 1, b = bit 2, etc. up to bit 26.
Use the alternate configuration file
Set news mode for processing RFC-1036 Usenet news rather than RFC-822
Route packets to the Fidonet address
Address should be in the format "[pNN.]fNN.nNN[.zNN[.domain]]".
Set the type of Fidonet packet to create. Where
Grade is one of:
N = Normal (Default)
C = Crash
H = Hold