Table of Contents
BinkIT - FidoNet Mailer
- BinkP 1.1 support (except for the undocumented No Dupes mode)
- Supports operation over TLS (binkps) for both inbound and outbound sessions
- Supports BinkD compatible encryption
- Supports secure CRAM-MD5 authentication
- Full 5D address support
- Creates semaphore files for TIC (tickit.now) and Fido (fidoin.now) events automatically
- FREQIT integration for file requests from subs
- Nodelist support, can read the hostname and port number from a nodelist
If you've already configured SBBSecho v3, you may perform an automated install of BinkIT from a command prompt by running “
exec/jsexec binkit install”.
This will update the
ctrl/sbbsecho.ini file for you and setup the necessary Timed Events in SCFG, but you may need to edit the session passwords in
sbbsecho.ini to match those expected by your links.
If your network links are not in FidoNet (i.e. reachable via the
binkp.net domain), you may need to specify a NodeList for that domain or specify
Host values for those linked nodes.
Upgrade to BinkIT v2
If you've already setup BinkIT 1.x (e.g. using
binkit.ini), after updating your
load/*.js files to the latest (including
binkit.js v2.x), you'll need to migrate your
ftn_domains.ini settings in
sbbsecho.ini. This can be done automatically by running “
exec/jsexec binkit upgrade”.
If you wish to perform the merge by hand, here are the changes:
| Old || New
| root ||
| root ||
The domain sections keys are unchanged, but the domain sections now require a
| Old || New
Once the upgrade is complete, all of the BinkIT and SBBSecho configuration parameters can then be viewed and modified using the EchoCfg utility.
Add the service in
[BINKP] Port=24554 Command=binkit.js
Add 2 Timed Events in SCFG->External Programs->Timed Events:
╔════════════════════════════════════════════════════════════════════╗ ║ BINKOUT Timed Event ║ ╠════════════════════════════════════════════════════════════════════╣ ║ │Internal Code BINKOUT ║ ║ │Start-up Directory ║ ║ │Command Line ?binkit ║ ║ │Enabled Yes ║ ║ │Execution Node 1 ║ ║ │Execution Months Any ║ ║ │Execution Days of Month Any ║ ║ │Execution Days of Week All ║ ║ │Execution Time 00:00 ║ ║ │Requires Exclusive Execution No ║ ║ │Force Users Off-line For Event No ║ ║ │Native Executable No ║ ║ │Use Shell to Execute No ║ ║ │Background Execution No ║ ║ │Always Run After Init/Re-init No ║ ╚════════════════════════════════════════════════════════════════════╝
To have the BINKOUT event triggered automatically upon any outgoing FTN-mail, set the
OutgoingSemaphore key in your
ctrl/sbbsecho.ini file to
../data/binkout.now (requires SBBSecho v3.02 or later).
╔════════════════════════════════════════════════════════════════════╗ ║ BINKPOLL Timed Event ║ ╠════════════════════════════════════════════════════════════════════╣ ║ │Internal Code BINKPOLL ║ ║ │Start-up Directory ║ ║ │Command Line ?binkit -p ║ ║ │Enabled Yes ║ ║ │Execution Node 1 ║ ║ │Execution Months Any ║ ║ │Execution Days of Month Any ║ ║ │Execution Days of Week All ║ ║ │Execution Frequency 24 times a day ║ ║ │Requires Exclusive Execution No ║ ║ │Force Users Off-line For Event No ║ ║ │Native Executable No ║ ║ │Use Shell to Execute No ║ ║ │Background Execution No ║ ║ │Always Run After Init/Re-init No ║ ╚════════════════════════════════════════════════════════════════════╝
The execution interval determines the polling frequency.
The following options may be specified on the command-line:
-ppoll any links with the
Poll=Yesoption after running a normal outbound scan.
-Ppoll any links with the
Poll=Yesoption and *do not* run a normal outbound scan.
-l[node] poll the specified node and *do not* run a normal outbound scan. Cannot be used with
-loptions may be specified on the same command-line.
ctrl/sbbsecho.ini file holds the configuration settings of BinkIT.
[BinkP] section of
Capabilitiesif set, changes the text in the
M_NUL NDLline from the default of “115200,TCP,BINKP”. This field is not well documented.
Sysopif set, over-rides the sysop name (
ZYZ) value (e.g. to send the sysop's real name instead of alias).
Each link should be specified as
[node:<address>] section with the full 5D address (e.g.: “node:1:103/17@fidonet”) as the section name.
The following are all optional and allowed per
SessionPwdsets the BinkP session password for the link (Usually the only required option)
BinkpPlainAuthOnlyForces outbound sessions with this link to use plain-password authentication (not CRAM-MD5). Defaults to
BinkpAllowPlainAuthallows this link to insecurely send the password on the connection. Defaults to
BinkpAllowPlainTextallows this link to use an unencrypted (plain-text) session. Defaults to
BinkpSourceAddressthe outbound FTN address to use for this link. Not normally needed, but can be used if multiple addresses are used in the same net with different passwords. Defaults to the “closest” FTN address to the link address.
BinkpPortTCP port to connect to when making an outbound connection on this link. Defaults to the port specified in the domain's nodelist, if configured, or the default BinkP port of 24554.
BinkpHostInternet host (IP address or hostname) to connect to when making an outbound connection on this link. If not specified, will first attempt to read from the nodelist if configured for the domain, then will use the DNS suffix, if specified using the “p.f.n.z.domain” style (e.g.
binkp.net) domain name.
BinkpPollThis link will be polled any time
-Pis specified on the command-line. Defaults to
For compatibility with links using the BinkP implementation in Mystic BBS version 1.12A39, you must set
For more details on the BinkP session-security related settings, see the documentation for
sbbsecho.ini -> Node Sections.
[BinkP] Sysop=Henry Samueli [node:1:218/700@fidonet] SessionPwd=TopSecret BinkpPoll=yes [node:1:2320/100@fidonet] BinkpHost=livewirebbs.com [node:10:1/1@othernet] BinkpHost=coolbbs.example.com BinkpPort=24556 SessionPwd=MaxSecret BinkpPoll=yes
In the above example, 1:218/700 is a node you want to poll. If you create a second binkit event and add the
-p (small p) option it will scan the outbound directories, send outbound mail and poll nodes that have Poll=yes option set. In this case 1:218/700@fidonet and 10:1/1@othernet will be polled and any new inbound mail will be picked up and outbound mail will be delivered. 1:2320/100@fidonet will not be polled, though if there is pending outbound, it will be sent.
In the case of 1:2320/100, let's say you have a need to route netmail to this node. In this case there is no automated polling to this node and anything that needs to be sent to this node via crash will be sent to livewirebbs.com with no password. If there is a nodelist, the port number will be used from the nodelist. In this example, the hostname is being overridden, so it won't use the nodelist or DNS to connect.
The network “othernet” will also be polled. In this case it will call out on port 24556 and the outbound root has been specified in the config. You can specify a domain wide outbound root in your
sbbsecho.ini. It should be noted that
[domain:othernet] should be defined in
sbbsecho.ini with either a
If you check your outbound directory, do not be surprised if you see other outbound directories with extensions after them. For instance
The first listed FTN address (in scfg->Networks->FidoNet->System Addresses) is used as the default address, and it's zone is used as the default zone. All addresses configured in SCFG are used for the
M_ADR command to the remote.
BinkIT reads the
ctrl/sbbsecho.ini file, possibly using the following pieces of information:
- Outbound path (
- Secure Inbound path (
- Insecure Inbound path (
- Mailer type (
BinkleyStyleOutbound). BinkIT will exit with an error if this is not set.
- Packer configuration (
Unpackkeys in a
BinkIT integrates FreqIT functionality, so the
freqit.ini file is used.
Not technically a configuration file, the
data/binkstats.ini file contains cumulative statistics about all inbound and outbound BinkP connections made by BinkIT.
domain: sections in
sbbsecho.ini are used for 5D support in BinkIT. Each
domain: section defines an FTN domain. If no domains are specified, zones 1-6 are set to 'fidonet' with a DNSSuffix of 'binkp.net'.
Each domain section can have the following keys:
Zonesa comma-separated list of zones present in this domain. When only a single domain lists a specific zone, that domain is used as the “default domain” for that zone.
DNSSuffixused for DNS nodelist lookups. If this file doesn't exist,
binkp.netis used for the fidonet domain.
OutboundRootthe root path for this domain, used for constructing outbound directories for this domain.
NodeListFull path to a nodelist file to use for this domain.
[domain:fidonet] Zones=1,2,3,4,5,6 OutboundRoot=/sbbs/fido/outbound/ DNSSuffix=binkp.net [domain:othernet] Zones=10 NodeList=/sbbs/fido/OTHERNET.234
Callout to 3:330/1@fidonet started. Connection to f1.n330.z3.binkp.net:24554 failed.
This error means that the linked node (3:330/1@fidonet in the example) is not DNS-resolvable. You'll need to use a nodelist for the
fidonet domain or a “BinkpHost” value for that node (with the IP address or host name of the node) in your
Sent M_ERR command args: Encryption required
This error means that the remote/peer doesn't support encryption and encryption is required. To loosen this requirement and allow a plain-text/un-encrypted session with this link, set
BinkpAllowPlainText=true for that linked node in your