ifmail - Convert RFC-822 and RFC-1036 mail/news to FTN Fidonet packets.
ifnews - Convert RFC-1036 Usenet news to FTN Fidonet packets.
ifmail [-h] [-x verbosity] [-I file] [-n] [-r Address] [-g grade]
ifnews [-h] [-x verbosity] [-I file] [-r Address] [-g grade]
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 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 as a mail message to the remembered domain
ATTENTION: This mechanism will not work if you specify fidonet-style
address as the "visible name" in your MTA. However you can edit
/etc/aliases to add lines of the pattern: John.Smith: jsmith Or you
can set GECOS matching in sendmail.cf (OGTrue)
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 it (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
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.
-h Display a short help message.
-x verbosity 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.
-N Put resultant packets to /tmp/ifmail.
-I File Use the alternate configuration file File.
-n Set news mode for processing RFC-1036 Usenet news rather than
RFC-822 electronic mail.
-s Set secure mode: this enables ifmail to check the nodelist
before gating the message from RFC-822 electronic mail to FTN-style
-r Address Route packets to the Fidonet address Address. Address
should be in the format "[pNN.]fNN.nNN[.zNN[.domain]]".
-g Grade Set the type of Fidonet packet to create. Where Grade is
N = Normal (Default)
C = Crash
H = Hold
-c Charset Forces the use of the given Charset, it is useful when
you know that a given link can only handle one charset for its incoming
mail. This switch override all the charset handling done internally. It
needs -DDIRTY_CHRS at compile time to be active.
-l Level Sets the Level for ^aRFC- kludges. If not set 1 is the
default. it determines the amount of info from rfc headers that is
kept when gating.
-1: really nothing is gated, not recommended at all !
0: only intended for points or end-leaf nodes that have only an
1: normal level inteded for normal gateways and nodes (points)
2: keeps almost everything, including lots of non relevant
3: hey! same as 2 but in plain text, no ^aRFC- kludge is used.
I recommend you to leave the default value of 1 if you don’t really
know what you are doing.
-b Don’t split the messages when writting to PKT. Use this option
only if you know your partner uses a tosser that can handle messages of
arbitrary size (or at least 64KB big). Note that strict compliance to
fidonet standards imply handling messages of arbitrary size.
$IFLIBDIR/config Runtime configuration file.
ifcico(8), ifpack(8), ifunpack(8), iftoss(8)
Some ideas taken from Fidogate/RFmail package, written by Teemu Torma
and hacked by Martin Junius. Some modeules taken from INN package.
Thanks to Michael Bravo <firstname.lastname@example.org> (who was the first) and
many others for testing.
1993, 1994 Eugene Crosser
This is free software. You can do what you wish with it as long as this
copyright notice is preserved.