IFMAIL(8)
π IFMAIL π
okay bestie, so this is the manual page for ifmail and its lil sibling ifnews β it lives in section 8 of the System Manager's Manual, so you already know it's giving admin-goddess energy π
β¨ NAME β¨
ifmailβ Convert RFC-822 and RFC-1036 mail/news to FTN Fidonet packets.ifnewsβ Convert RFC-1036 Usenet news to FTN Fidonet packets.
πΈ Synopsis πΈ
ifmail [-h] [-x verbosity] [-I file] [-n] [-r Address] [-g grade]
receipent ...
ifnews [-h] [-x verbosity] [-I file] [-r Address] [-g grade]
[receipent]
(yes bestie, receipent is spelled exactly like that in here, we don't touch it, we respect it π
)
π¦ Description π¦
Ifmail converts RFC-822 compliant mail and RFC-1036 compliant news into FTN packets. Fr fr it has to run setuid as the owner of the fidonet related stuff, no cap. The current packet naming is BinkleyTerm, with file and directory names in lowcase. The naming conventions live in their own separate source file, pktname.c, specifically so mods are easier β iconic behavior honestly π
The default mode is mail mode. In mail mode you must specify recepient address(es) on the command line, in this form:
"Eugene.Crosser@p14.f6.n5020.z2.fidonet.org"
The first receipent address gets used as the routing address, if no routing address is specified. And in news mode, the $NEWSSITE environment variable is what gets used as the routing address. π«
When news mode is in effect (i.e. the -n key is specified or the program gets called by the 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. The way that it just remembers things for you ππ«Ά
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 address. It's giving personal assistant, honestly.
ATTENTION: β οΈ This mechanism will not work if you specify a fidonet-style address as the "visible name" in your MTA. However you can edit/etc/aliasesto add lines of the pattern:John.Smith: jsmithβ or you can set GECOS matching insendmail.cf(OGTrue). iykyk π«
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! π (yes the shouting is in the original, and yes it deserves it)
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. Preservation queen π
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:
- your node primary address,
- a copy of
X-FTN-SEEN-BY:header(s), - ftn addresses that could be parsed from the CNews file
$NEWSCTL/login the line with the corresponding Message-ID.
For that last one to work, you should have a Cnews compatible log file available for reading and have an ndbm package. This works with INN too, bestie. π§
ATTENTION: β οΈ your feed name in the cnewssysfile should befNNN.nMMMorpNNN.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 a case, specify the "cutdown" fNNN.nMMM notation after the slash, to prevent exporting back (refer to your news system's manual). This trick may also be useful if your hub presents non-primary AKA in the echomail it gives you. Sneaky and valid π
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. It's bringing a plus-one π
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. Bye. Blocked. π«β¨
π OPTIONS π
-hβ Display a short help message. Baby's first flag πΌ-x verbosityβ Set the debug verbosity.verbositymay be a number from0to32to set 'on' bits from 1 to number, or a string of letters where'a'= bit 1,'b'= bit 2, etc. up to bit 26. Bit math but make it cute ποΈ-Nβ Put resultant packets to/tmp/ifmail. Temporary lil home π-I Fileβ Use the alternate configuration file File. Bring your own config, main character move π-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 netmail. Safety first bestie π‘οΈ-r Addressβ Route packets to the Fidonet address Address. Address should be in the format"[pNN.]fNN.nNN[.zNN[.domain]]". Exact format, don't freestyle it π―-g Gradeβ Set the type of Fidonet packet to create. Where Grade is one of:N= Normal (Default)C= CrashH= 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 overrides all the charset handling done internally. It needs-DDIRTY_CHRSat compile time to be active. β οΈ compile-time gatekeeping, rude-l Levelβ Sets the Level for^aRFC-kludges. If not set,1is 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 FTN link1: normal level inteded for normal gateways and nodes (points)2: keeps almost everything, including lots of non relevant headers.3: hey! same as2but in plain text, no^aRFC-kludge is used.
- I recommend you to leave the default value of
1if you don't really know what you are doing. π«Ά (that's the manpage talking, and it's right) -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. β οΈ do not yolo this one
π FILES π
$IFLIBDIR/configβ Runtime configuration file.
π SEE ALSO π
(the whole squad, go read them too π«Ά)
π Acknowledgements π
Some ideas taken from the Fidogate/RFmail package, written by Teemu Torma and hacked by Martin Junius. Some modeules taken from the INN package. Thanks to Michael Bravo <mbravo@tctube.spb.su> (who was the first) and many others for testing. Shoutout to the testers, the real ones ππ
1993, 1994 Eugene Crosser
This is free software. You can do what you wish with it as long as this copyright notice is preserved. Free as in do-whatever-you-want, just keep the receipt π§Ύβ¨
and that's the whole thing bestie β this page came out of the 4th Berkeley Distribution, dated 4th Berkeley Distribution era vibes, and it's filed under IFMAIL(8). slay, go gate some mail π πΈ
π¦ where this page comes from
- debian bookworm: ifgate 2.14tx8.10-27+b1
- debian trixie: ifgate 2.14tx8.10-32
- ubuntu jammy: ifgate 2.14tx8.10-26
- ubuntu noble: ifgate 2.14tx8.10-28
- ubuntu questing: ifgate 2.14tx8.10-32
- ubuntu resolute: ifgate 2.14tx8.10-32build1
- ubuntu stonking: ifgate 2.14tx8.10-32build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms