Preliminary short documentation for JetMail [Beta-Version] ========================================================== For version: 0.99beta09 RESTRICTIONS: ============= 1. JetMail only works with Semper or Binkley 3.00 and higher (because it uses the base 36 format for outbound files like IOS). We can't supply THE-BOX support. 2. You have to install Binkley with domains, because JetMail is written to work as a 5D system. All addresses in the configuration file must be 5D. You can switch to 4D or 3D/2D for links which don't support 5D. ATTENTION: All domain names have to be completely LOWERCASE! 3. Messagetracking only works with a BTNC nodelist. The compiler for this nodelist is distributed with JetMail. The current version of Semper and Binkley (3.03a/Beta-2) supports this format and is available from 2:243/6007 with BT-BETA !GNADE and other ST based systems. Some C source to access this nodelist type is requestable at the same system with magic BNL-SRC. 4. Some TOS versions have problems with memory management. As JetMail uses the memory manager VERY heavily, it might be necessary to use the util FOLDR100.PRG and/or POOLFIX4.PRG in your AUTO folder. For Mag!x, you have to install ADDMEM.PRG in your AUTO folder. 5. You have to set up all three *different* inbound paths to get JetMail work! 6. LED 1.03beta or higher is recommended as you can use many features of JetMail only if you have access to the extended message flags. ATTENTION: NoDeleteUnread doesn't work with older LED versions! 7. The mail flavours Direct and Immediate work only correctly with Semper, because of a bug in BinkleyTerm, which takes the character 'D' as Immediate and has no special Direct flavour. CONFIGURATION ============= All configuration and system files are held in special system folder. JetMail takes the name of the system folder from the environment variable JETMAIL or assumes .\JETMAIL if the environment variable isn't defined. The file LED.NEW (lastread pointer for LED) is searched in the folder specified by MAILER or in the current working directory. LASTREAD.BBS (lastread pointer for QuickBBS ST) is searched in the folder specified by QBBS or in the current working directory. Following files will be held in the system directory: 1. CONFIG.JM : Main configuration file. 2. ROUTE.JM : File with routing information. 3. DUPES.SYS : CRC's of the last 8000 messages for dupechecking. 4. MAILHIST.SYS : Statistic file of inbound and outbound traffic. Just try the JetStat program. 5. AREAHIST.SYS : Statistic about traffic in the echoareas. Also just for JetStat. 6. AFHELP.JM : Helpfile for the built-in AreaFix 7. EXITINFO.SYS : Exit information generated after every exit This file can be processed by EXITINFO.TTP 8. FWD.SYS : Information about waiting area request forwards. 9. JETMAIL.KEY : JetMail key file 10. LASTRUN.SYS : JetMail keeps information about the time of the last execution in this file to recognize big system clock failures and then stop the system. So let's now describe the format of the CONFIG.JM file. Comments are possible with a ; at the beginning of the line. Recognized separators are blanks and TABs. Pathnames could be specified with and without trailing backslash. The order of commands has to be: o Domain Definitions o System addresses o Link Definitions All other commands can be used anywhere. SPECIFYING INBOUND/OUTBOUND DIRECTORIES ======================================= Inbound Directory of the normal inbound, i.e. the inbound for mail from unknown systems. KnownInbound Directory of the inbound for known systems, i.e. systems which are listed in the nodelist. ProtInbound Directory of the inbound for protected systems, i.e. systems for which you've defined a session password. The directories must correspond with the inbound settings for Binkley or Semper. It is absolutely necessary to define all three inbounds to run JetMail. Outbound Defines the default outbound for your first domain. The same as the second argument in the first domain statement of Binkley. Normally points to 'OUTBOUND'. SECURITY ======== JetMail will handle mail as follows: 1. JetMail doesn't process Arcmail in Normal/Known Inbound. It just writes a message in the log and renames the Arcmail bundles to *.Bnn. Only Arcmail in the protected inbound will be processed by JetMail. 2. Packets from not linked systems (about the concept of links, see later) in the protected inbound are renamed to BKT. Also packets from links with a password mismatch. 3. If the destination address of the packet is not our system the packet is renamed to BKT. ARCHIVERS ========= JetMail supports the following archive formats: ARC,LZH,LHA,ZIP,ZOO,ARJ. The syntax is very simple. Put the Keywords ArcPack, ArcExtract, LZHPack, LZHExtract, LHAPack, LHAExtract, ZipPack, ZipExtract, ZooPack, ZooExtract, ArjPack, ArjExtract in your CONFIG.JM, specify the path to the compression utility after the keyword and then the desired options for extracting or adding. Example: ZipPack c:\archiver\zip\zipjr.ttp -a -mt -edb The difference between LHA and LZH is, that LZH is for old LHARC archives before version 2.0. Sometimes lharc 2.01 has difficulties to unpack these archives. Normally LHA/LZH will point to the same archiver. SPECIAL AREAS ============= Netmail Defines the netmail area name as specified in AREAS.BBS. So, if you have an AREAS.BBS line G:\MSGBASE\NETMAIL FidoNetmail then you would have to define Netmail FidoNetmail Mailbox Defines your private mailbox. If defined, every EchoMail directed to the Sysop will also be saved into this folder. JetMail will put a \03AREA [AreaTag] line into the message. You could reply to this mail as in a normal echomail area (but don't delete the special line when replying). JetMail will recognize the Areaname from this line when scanning the Mailbox and saves the message back to this area if SaveLocal is active. 'Messages to sysop' pointers won't be set in the normal echomail when mailbox is defined. The definition is done as for Netmail. ATTENTION: This area has to be defined in AREAS.BBS, too! BadMsgs DupeMsgs These keywords define areas for unprocessable messages and for dupes. If DupeMsgs is not set, dupes will be saved into the BadMsgs area. If also BadMsgs remains undefined, dupes are thrown away. The definition is done as for Netmail. ATTENTION: These areas have to be defined in AREAS.BBS, too! Archive Defines the area to which msgs are copied which had the Archive/Sent flag set when exporting. This flag is supported by LED 1.03beta and higher. ATTENTION: This area has to be defined in AREAS.BBS, too! SPECIFYING DOMAINS AND NETWORK ADDRESSES ======================================== This is in my opinion the most difficult part in configuring JetMail. As i mentioned in the introduction, it is not possible to run JetMail without using domains. Domain as it said, is the name of the domain like fidonet.org or nest.ftn. is the shortening of the domain name and is used to identify the outbound folder for mailpackets like in Binkley (NOTE: This isn't true for the first domain. JetMail takes the Outbound folder instead of). It is also used for FSC0045 packets. could be anything and is used to plot the 'NiceOrigin' line. Example: Domain nest.ftn nest NeST nest.05a will now be the outbound folder for NeST mailpackets. The Origin line will be (90:4/0@nest.ftn) or (NeST 90:4/0) if you specify NiceOrigin. Please note that 'abbrev' must correspond with the second parameter in Binkleys domain statement. If you send FSC0045 packets, JetMail puts 'nest' into the OrigDomain field of the mailpacket. ATTENTION: The parameter will be automatically converted to lowercase to maintain conformity with the domain standards. Address [fakenet] You specify all your network addresses with this statement. Please encourage, that you really define all your addresses. Otherwise JetMail routes mail to a not known AKA of you. is only necessary for mail to points with only 3D capable software (SEEN-BY entry). Example: Address 2:2456/114@fidonet.org 29114 Address 51:601/111@atarinet.ftn Address 90:400/602@nest.ftn FLAGS & MISCELLANEOUS ===================== Debug Specifies stages of debugging. Global 1 Import 2 Scan 4 Pack 8 Maint 16 Control flow 32 Just add the values. For example: Debug 6 enables debugging of scanner and importer. The 'flow' debug is logging the internal program trace. This should be used if JetMail bombs reproducable. The log should be sent to the authors. Sysop Your Sysop name. Needed for setting 'Messages to sysop flag' in LED. Also checked against your keyfile. Key With that keyword, you install your personal registration key or demo key. Without that key, JetMail won't work. Logfile [maxsize] Name of the JetMail logging file. Defaults to LOGFILE.JM in the system directory. If you specify maxsize (in KB), the built-in logfile trimmer is activated. If the logfile grows above maxsize KB, the logfile is trimmed to 3/4 of the former size. NoLog NoDisplay Disables partially the logging of messages. Possible flags are: ~ : Miscellaneous ! : Fatal error ? : Warning + : Major change - : Minor change = : Routing information # : Bundle information * : Message logging % : Results $ : Bundle/Packet sizes > : Debug information & : Internal program flow information for debugging purposes / : AreaFix messages Example: NoDisplay *% disables displaying of message logging and result information VerboseLogging This one lets JetMail log all processed areas by MAINT and SCAN, for debugging purposes. BinkleyLog Switches to Binkley-style logging format. For people which use the same logfile for Binkley and JetMail. Nodelist Tells JetMail the path to a BNL nodelist base as compiled with BTNC. StdDays StdMinMsgs StdMaxMsgs Standard values for crunching echomail when not defined in AREAS.BBS. Defaults to 21 days, 0/1500 messages. KeepBundles Rename Arcmail bundles to *.nnn after importing. Don't delete them. MinDiskSpace Check diskspace before writing to a file. Measure is in KB. MSGIDMode <2D|3D|4D|5D> Mode of MSGID for locally entered messages. Defaults to 5D if not specified. OriginMode <2D|3D|4D|5D> Mode of Origin for locally entered messages. Defaults to 4D if not specified. NoSaveLocal JetMail saves back locally written messages after exporting. This option disables this feature if you have trouble with old out-dated software. CheckEchoDupes [] Activates echomail dupechecking. JetMail keeps up the CRCs of the last 8000 imported echomail messages for dupe checking. If 8000 is not enough, you can specify . CheckNetDupes Activates netmail dupechecking. The Via lines are checked if the netmail has already passed our system. DefPktType Default packet header type for mail to systems which are not links (normally for crashmail). Defaults to FTS0001 which nearly every known mailprocessor accepts. NoMsgTrack Deactivates the built-in message tracker. The tracker checks if the origin and destination of a netmail is listed and bounces it if not. The message tracker is only available with the full key. KnownAddress If you want declare some address(es) as "listed" which are not really in the listed nodelist, you can do it with this statement. The built-in message tracker treats them as "listed". So if you run a nodelist with zone 2 compiled only and you route netmail to other zones to your uplink, you don't want those netmails to checked by your message tracker. With KnownAddress 1:*@fidonet.org 3:*@fidonet.org 4:*@fidonet.org KnownAddress 5:*@fidonet.org 6:*@fidonet.org you can prevent those netmails to be bounced. VacationDate Put here some information if you are on holiday. For every netmail to you, JetMail takes the date after VacationDate and sends a short message to the originator of the netmail including this date. Example: Vacationdate 31.12.1992 You can exclude mail robots via "Robots". ReAddress "to_pattern" "new_to" [NoNotify] ReAddresses netmail. Every netmail which destination address is matched by and To field matched by "to_pattern" will be redirected. The To: field is changed to (unchanged if is *) and all components of the destination address are changed to . In the parameter, all components of a 5D address must be defined. You can leave out the .0 for nodes! Example: ReAddress "*" 2:241/*@fidonet.org "Joerg Spilker" *:*/*.1@fidonet.org JetMail redirects every netmail to a system in net 241 to Joerg Spilker and changes the point number to 1 in the address fields (not very useful :-)) Also, you are able to modify, not just replace the To: string. In the place of '*' in the new_to parameter, the old To: name is inserted, so e.g. Albi Rebmann can use the following for his Zerberus gateway ReAddress "*" 77:7700/430.0@LifeNet "*@CREDO.ZER" 77:7700/1.0@LifeNet to append @CREDO.ZER to the To: string and re-address it to his Zerberus gate. Normally, the addressee is informed about the re-addressing which has taken place. But if you run a gateway software which uses a point address of your node system, you would not want to have extra text added to the message body. So you can use the optional keyword "NoNotify" to disable this notification. ATTENTION: JetMail has an automatic re-addressing for your points built-in. This works only if JetMail knows the name of this point, so it has to be listed in the nodelist or specified by "Sysop " in the link block. The virtual ReAddress line used for a link like John Doe at 1:234/56.7@fidonet.org: ReAddress "John Doe" 1:234/56.*@fidonet.org "*" *:*/*.7@* Purge [From|To|Subject|Text] JetMails throws away every net- and echomail message with from/to/subject field in the message-header containing . CAN'T be a pattern like "Jonathan Dumm*" if used in conjuction with the From/To/Text parameters. If you use Purge with "Subject" parameter, a pattern can be specified using * or ? quantors. ATTENTION: The comparison is case SENSITIVE Supervise JetMail copies all ECHOmail messages from or to to the netmail area and addresses them to the sysop. FilterReqMsgs This flags tells JetMail to throw away all messages which the FILEREQUEST flag set. This messages arrives usually if FD systems are requesting FILES. NiceOrigin 5D Origin looks like (2:245/96@fidonet.org). With NiceOrigin set, it looks like (FidoNet 2:245/96) (the last case also with ORIGINmode = 4D). NoReplyChains JetMail calculates reply chains from MSGID and REPLYID for the ReplyChain feature of the current LED betaversions. NoReplyChains disables this feature if you have problems with other software using mailer[0-3] message header fields. PrintMyMail Similar to ACS, this statement lets JetMail print every incoming message to the sysop (netmail AND echomail). The printer status is checked before every message. PrinterLineLen This command sets the line length of your printer to an other value than 70, which is the default. JetMail uses this value to wrap lines of a paragraph if using PrintMyMail. NoStripCrash JetMail strips the Crash flag while importing a netmail message and prevents crashmails from other links to be sent via your system. This options turns this feature off. ImportArcmail This statements allows JetMail to import mail bundles in the known and unknown inbound if specified. Default is only to import unbundled packets. ATTENTION: If you use this command, your system is a perfect target for mail bombs! NoDestCheck This switch turns the packet destination check of JetMail off. Some silly software writes bad packet headers and relies on the uglyness of the receiving system. DisableAreafix Turns the built-in AreaFix off. NoCPP This is used to turn the CPP (Circular Path Protection) globally off. MonitorNetmail This one forces JetMail to save EVERY processed netmail into the local netmail folder. MonitorFix This one forces JetMail to save all AreaFix & FileFix (coming soon) netmail traffic locally to your netmail area. Interprete <5Daddr> AS <5Daddr> This statement gives you the ability to translate packet origin/destination addresses. The first address is the address which is parsed from the packet header and which is replaced by the second address. Group GroupEnd With this commands, you specify all area groups you will use in AREAS.BBS with -Group and the is listed on the top of an AreaFix report. Within this group definition block, you can use the following commands: Description Announce MsgBasePath SortMode [Sorted/Unsorted] If you don't define a description, the group will NOT be listed on top of the AreaFix reports. Announce is used to specify areas, in which automatically added or removed areas of this group are reported. If using Auto[D]Area, JetMail creates the HDR and MSG files in the same directory where the netmail area is stored. You can now define the path per group. Example: SortMode is used to switch sorted AreaFix list output on and off. Group N Description NeST International Network Announce NEWECHOS.LOC MsgBasePath G:\MSGBASE\NEST\ GroupEnd Group A Description AtariNet - The direct link to ATARI USA Announce NEWECHOS.LOC MsgBasePath G:\MSGBASE\ATARINET\ GroupEnd NoAutoDisconnect JetMail's AreaFixer automatically disconnects passthrough-areas which are not passed to another link at your uplink. This option disables this feature. CrunchAlways This one lets JetMail crunch the special areas FidoNetmail, TrashArea, Dupearea and Archive everytime JetMail was invoked with the SCAN[ALL] or PACK parameter. MinCrunch Tells JetMail not to compact areas in which less than messages would be removed. NoDeleteUnread Tells JetMail not to delete unread messages. KeepMemory This one advises JetMail to leave KB free memory to external programs like archivers etc. Also very useful for multitasking environments like MultiTOS, MiNT or MultiGEM. The default is to keep 400KB free. AboutFile This one is to define a file which will preceed every AreaFix list report. DupeRing This one enables dupe ring checking for those who have set up an echomail backbone ring. This was made switchable because it takes some extra time. FreeBuffers Advises JetMail to free all buffers when calling archiver programs so that there is a minimum of 84KB more free memory. ATTENTION: If you use a CheckEchoDupes with a high count specified behind it, it takes a very long time to re-initialize the buffers so the BUNDLE process on node systems can be significally slowed down. NoSaveSeenby Tells JetMail not to write SEEN-BY and PATH information into the local message base. ATTENTION: This command should not be used by systems which have echomail downlinks as rescanning is not longer possible. LimitHandles This statements limits the amount of file I/O handles used by JetMail for systems which don't support many of these. When using MiNT or MultiTOS, JetMail automatically activates LimitHandles, but on FALCON machines you have to do that manually if you don't run MultiTOS. ArealistUnsorted Avoids alphabetically sorting your area listing in AreaFix reports. See also "SortMode" in the Group definition block. StdMaxPktSize Used to set a global maximum size for outgoing PKT files. The default is NO limit. See also "MaxPktSize" in the Link definition block. ATTENTION: You have to limit the import buffer size with MaxBuffer to leave some memory to the archiver program. Robots With that statement you can prevent JetMail from appending a signature to addressees matching . JetMail has the following names hard-coded: o AreaFix o AreaMgr o JetMail AreaFix o JetMail Server o FileFix o FileMgr o Ticker o Raid Example: Robots *Mgr Manager *Fix GEcho Also, JetMail will not react on mail from these names if you are using VacationDate. Also, no signature will be appended to netmails to these "persons". NoSignature With this command, you can prevent JetMail from appending a signature to addressees matching . This is very useful if you write often netmails to mail partners who know the information in your signature well (e.g. your uplink or boss). Example: NoSignature *Spilker *Thieme ATTENTION: If you write to addressees listed behind "Robots" and all hardcoded mail robots, they won't get any signature. So you don't have to define these twice. LINK DEFINITIONS ================ Links are an elementary concept of JetMail. For every system to which you want to route mail, you have to specify characteristics like AreaFix password, Arcmail type, packettype and many more. Every link definition begins with the line: Link [fakenet] and end withs the line LinkEnd The fakenet MUST be given if the Link is a point, and not one of yours and uses Controlmodes 2D or 3D. If he/she uses 4D or 5D Controlmodes, no fakenet is needed. The following keywords are only active within linkdefinitions: Sysop This field defines the name of the sysop. If not defined, JetMail tries to get the sysop name from the sysop field of the nodelist. If JetMail can't find the name in the nodelist, it puts 'Sysop' in the field. This field is used for automatic replies or netmails to set the TO field in the messageheader (instead of using "Sysop"). Password Defines packet and AreaFix password. Please note that some systems don't include a password in the packet header. In this case defining a Password causes a 'password mismatch' when processing the packet. SessionPwd Defines the session password with this link if it differs from your mail password. This one was implemented to get request responses from BinkleyTerm systems imported which contain the session password as packet password. AreaFixPwd Defines an AreaFix password. Only needed when you can't specify a password because the link doesn't support packet passwords or if you want to have different password for AreaFix and packet. ArcMode [ARCmail|LZHmail|LHAmail|ZIPmail|ZOOmail|ARJmail|None] Specifies which archiver to use for the link. If 'None' specified, the packets will remain uncompressed. PackCommand If defined, overrules the standard flags for compressing from the archiver definition. Example: You have an archiver definition for ZIP like this: ZipPack c:\archiver\zip\zipjr.ttp -a -mt But you know that some systems are using ZIP 2.0 compatible archivers and you wish to send them deflated packets. Then you put a PackCommand -a -mt -edb in the link definition. PktType [FTS0001|FSC0039|FSC0045|FSC0048] Packetheadertype for this link. Defaults to FSC0039. This type is supported by nearly all mailprocessors. If your link complains about the type just try one of the others (FSC0048 first, then FSC0045 and at last FTS0001). For technical information about the header types take a look into the FidoNet Technical Standards. These documents should be available from any FidoNet system. INTLMode [2D|3D|4D] Defines the address type for written INTL lines. These lines are needed for interzone mails. Defaults to 3D. ForceINTL This keyword forces JetMail to write an INTL in every mail, even if the zone doesn't change. Some echomail processors don't assume the origin and destination zone of a message from the zone fields in the packetheader and use the zone of their first alias instead (or assume the zone from the MSGID and REPLY kludges which causes trouble if the originating network wasn't fido compatible). This causes for example a netmail from 90:4/0 recognized as from 2:4/0 :-(( ControlMode [2D|3D|4D|5D] Defaults to 2D and describes how to write SEEN-BY and PATH into echomail. Please use modes higher than 2D only with other JetMail systems. OutboundMode [2D|3D|3Dpoint|4D|5D] Defaults to 5D. This one should be used by systems with links which are using mailers which are not domain/zone/point aware, because Binkley-ST takes the first own address as default template to expand the received remote address. OutboundMode is very useful if having links in a domain which isn't your default domain and they're using mailers which aren't domain/zone/point aware. Or a foreign point is a link of you and he/she presents his/her fakenet address, 'cause he is using a BinkleyTerm-ST version below 3.00 Examples: Presented remote's address | OutboundMode ---------------------------+------------- 24596/5 | 2D 2:24596/5 | 3D 245/96.5 | 3Dpoint 2:245/96.5 | 4D 2:245/96.5@fidonet.org | 5D (default) NetmailType [2D|3D|4D] Describes how to export netmail. Defaults to 4D which means that for point addressing FMPT/TOPT and INTL lines are written into the mail (standard). 3D uses the fakenet to generate the message header (containing a INTL kludge if the mail leaves the zone). 2D only writes the fakenet into the message- header. There is no difference between 4D and 3D for nodes. The difference between 3D and 2D is the existence of an INTL line when the mail leaves the zone. EchomailType [2D|3D|4D] Same as NetmailType, but for Echomail. NOTE: You don't need a fakenet if you specify all kind of address modes 4D or higher. ExtraNetmail Send netmail unbundled in an extra packet. Standard is to put netmail and echomail into one packet. RouteNetmail Normally, netmail for Links or their points are sent direct to them. With this flag, you can force JetMail to route the mail via the ROUTE-TO lines of ROUTE.JM. According to Joerg, this feature is sometimes (seldom?, hint) useful, if you have a protected session partner, but you don't want to force him to call you for mail. DummyPacket When using the POLL command in the routing file, JetMail generates an empty packet (you know this from ACS) if using DummyPacket. Otherwise JetMail only writes an OFT files of 0 byte length. Especially some FD systems need this dummy packets because they don't send mail to you if you don't send mail to them :-)) If you are using Semper, the fantastic mailer by Jan Kristen, then you have to use DummyPacket in conjunction with POLL, because Semper doesn't recognize empty OFT files as a reason to poll that system. AutoArea [group] Adds an non-existing area automatically to your AREAS.BBS file as and connects the system. If not set, messages in unknown areas from this link are trashed. You can define the group which the new area will get. This should be used to prevent a FidoNet link to connect to an NeST area which was automatically added. AutoDArea [group] Same as AutoArea, but adds the areas to the DAREAS.BBS as passthrough area. FwdRequests Allows forward requests of areas which aren't available at your system to other systems. This part of the AreaFix isn't finished. He will reply to the link that the request is forwarded but it really isn't. You have to request the area manually. NoNotify Deactivates NOTIFY for this link. For nearer information, look into the chapter about the command line. Passive [groups] Defines that the link is on vacation and wants to get only the mail addressed to him. If is specified, only the areas of the specified groups are passive for that link. CrashOK Allows JetMail to sent Crashmails to this link (point). This flag should be used for points which are 24 hours online. This point must be listed. Groups determines to which areas the link can connect. If the group char of an area matches one char in the string then the link is allowed to connect to this area. The group char has to be defined with the Group command (see above). Aka [fakenet] [{groups}] Defines an AKA for this link. What happens is that JetMail makes a copy of the link structure and substitutes fakenet and groups in the copy with the values from the AKA statement. Example: Aka 90:400/0@nest.ftn {Nn} Aka 2:245/90@fidonet.org 25090 {ABC} ATTENTION: If you use AutoArea or AutoDArea with their optional parameter, the default group is NOT copied to the aka link. Instead, the first group of the {} definition is taken. RouteAka [fakenet] [{groups}] Same as Aka, but sets the RouteNetmail flag in the link copy. UseAlias Use for packet and message header to this link. The address has to be one of your aliases. This is usefull for coordinators which more than one address in a domain. For example, i've the addresses Address 90:4/0@nest.ftn Address 90:400/0@nest.ftn Address 90:400/100@nest.ftn When sending mail to a link, JetMail will normally use the first alias with the correct domain from this table for all links. But this can cause difficulties if points of me get mail with headers like this: 90:4/0@nest.ftn -> 90:400/100.1@nest.ftn With UseAlias 90:400/100@nest.ftn in the link defintion for this point the right header will be set. For HUBs which poll me, i'll set UseAlias 90:400/0@nest.ftn NOTE: Don't use Aka and UseAlias in one link definition. RemoteAreaFix [] [!] This one is to make this system available for automatic area request forwarding and to tell JetMail's AreaFix where a list of areas is located which are available on this link. This list will be included in your own list of available areas on your system. The arealist can also be a arealist returned by a JetMail system if used %LIST. All you have to do is to name the list with the extension '.JET' that JetMail knows, that this is a JetMail format list. Also, you have to remove the whole header and footer of the message returned by %LIST and concatenate all broken descriptions so that one line in a *.JET file contains ONE (not more, not less) area descriptions. You can use "+" instead of a filename to mark a default forward host. If you define more than one default host, the last one is choosen. The optional parameter is to define the name of the AreaFixer on this link if it's different from "AreaFix" ! is an optional parameter which is useful if the remote AreaFix is not domain aware and protects all areas from other domains than the default one with a special password (like ACS does). Forward requests will look like: NEST_AREA !pwd Note that all areas in the forward list for this link must be protected with the same password. ATTENTION: The parameter HAS to be leaded by "!" RemoteAFpassword This statement is used to specify the password you must use with the remote's AreaFix. NoReAddress Disables automatic Re-Addressing for this link (point). See also the description of "ReAddress". AutoConnect This one lets JetMail connect all matching links to a new area received from this link. This is useful (e.g.) for RCs who want to distribute a new echo automatically to all other RCs. Example: Link 90:101/0@nest.ftn ... AutoDArea N AutoConnect 90:400/{[1-4]00} 90:7/0 ... LinkEnd This would connect Joerg's hubs and NeST Italy to every new NeST area Joerg receives from James Partner (90:101/0@nest.ftn). NoRoute This option prevents routing any netmails to this link. This switch is invented for systems running gateways under a point address. The netmails to this link are copied to the netmail are with the InTransit and Orphan flags. MaxPktSize Sets the maximum PKT size for that link. See also "StdMaxPktSize". RECOGNIZED FLAGS IN AREAS.BBS ============================= Scanning AREAS.BBS is one of the part of JetMail which is not as fast as the name promises. The reason is that up to now, we don't have a binary AREAS.SYS format. This means that every entry must be parsed and checked if it is a valid link. But be hopeful, it's not for now and forever. You needn't specfify domains in the AREAS.BBS file unless your configuration doesn't has two links with same numbers in different domains. JetMail will guess the right domain from the link definition. JetMail will issue a warning when no link is defined for an entry in the AREAS.BBS. Scanning the connected links is intelligent. Lines like the following are possible and will lead to the expected result. ATARI.GER 2:245/52@fidonet.org 96.1 .2 .3 .4 240/36 605 245/23 -MinMsgs Number of messages which will in all cases stay in the area even if they are older than specified by the -Days statement. -MaxMsgs Maximum number of messages in the area. -DAYS Messages older than of days will be deleted on crunching. If you specify -DAYS 0, no messages will be deleted. All these values default to the messages settings in the configuration file if undefined in AREAS.BBS. -Desc Description of the area. This one is send to users within AreaFix requests. -ORIGIN Use as origin for this area. -Passthrough Area is Passthrough. Messages are distributed to the connected links but not saved into the local messagebase. This flag is only implemented to remain compatibility with ACS. JetMail uses the DAREAS.BBS file to store information about passthrough areas. -ReadOnly This area is readonly. Only the sysop is allowed to send messages in this echo. Mail from other systems is trashed. -Remote The patterns specify the systems which are allowed to send mails for this area. -Readonly has priority over -Remote. Example: -Remote 2:243/* 2:245/* -NoRemote This is the negation of -Remote and works only in conjunction with it. Example: -Remote 2:243/* -NoRemote 2:243/114 This pair allows all systems in net 243 except 243/114 to write in the area. -Local BBS-only echo. Not scanned by JetMail. -Group Classifies the group for this area. Only links with the appropiate group string can connect. Areas with no group specified can be connected by every link. Please note the problems if doing so: A link can connect a NeST area under his FidoNet address if the NeST areas aren't protected by special groups. -UseAlias Use this address for generating Origin/MSGID when scanning locally entered messages. -NoCPP Deactivates the (C)ircular (P)ath (P)rotection. This feature checks for duplicate system addresses in the PATH line. Trash message if so. Should not be used by ZoneGates. -NoCPP disables this check. -Signature Take signature from the file for locally entered messages. Like the .signature file for UseNet newsreaders. ATTENTION: To prevent problems with automatic netmail utilities, JetMail doesn't append -Signatures in netmails to AreaFix, JetMail AreaFix, AreaMgr or FileFix. -StripSeenby Strip SEEN-BY lines in this areas. Only usefull for ZoneGates. !!!!!!!!!!!!!!!!!! Must be permitted from the ZC !!!!!!!!!!!!!! If you've got a permission, you should contact us. You'll get a special JETMAIL.KEY which enables this feature. -NoSaveSeenby Same as global command NoSaveSeenby, but only for that specific area. ATTENTION: Rescanning of this area is no longer possible! -Pseudonym This one lets you use a pseudonym in an area when exporting locally entered messages. The From: field is filled with this . -AllowPvt This one allows private messages in this area. If not used, the Pvt flag is stripped while the next crunching process of this area or while scanning this message. -NoHistory This flag prevents the area to be listed in the JetMail history files and JetStat charts. -NoConnect [patterns...] -NoDisconnect [patterns...] These ones are to avoid connecting/disconnecting via AreaFix for the systems matching one of the patterns. If no pattern is specified, nobody can (dis)connect. -NoConnect implies -NoForce -ForcePvt This one lets JetMail set ALWAYS the Private flag of all messages in this area when crunching it. ATTENTION: This area MUST have the -Local flag set! -Password This one is to set a special area password. This password has to be specified when connecting this area after a "!" sign. -NoDeleteUnread Same as the global NoDeleteUnread, but only for THIS area. -GateTo With this option you can gate the area with others. -ForceConnect This option forces certain links to connect to this area. A matching ForceConnect pattern implies a -NoDisconnect for this link. Example: -ForceConnect 90:?/0@nest.ftn -NoForce This command is used to make exceptions to -ForceConnect -NoExport Avoid SCANning this area. This is useful if an echo is read-only for YOU and you want to prevent sending messages by mistake. -OriginalEcho With this option, you can define the of the area under which the area is known to the network. So you can run UseNet's COMP.SYS.ATARI.ST as CSAST by defining: -OriginalEcho COMP.SYS.ATARI.ST G:\MSGBASE\INTERNET\CSAST CSAST 2:2456/95@fidonet.org So, LED users are able to distinguish very long area names. ROUTING / EVENTS ================ All kind of routing information is hold in an extra file names ROUTE.JM in the system directory. In this file, you will define the mail flavour for systems. You can change mail flavour to certain times with the Event feature. Mail flavour can be defined seperately for Netmail and Echomail. Please note, that all matching of addresses is done on a 5D basis. You will find some examples later in this chapter. Wildcards --------- JetMail accpets the following wildcards: * : matches anything ALL : same as *, but only active in ROUTE.JM ? : matches one char [x-y] : matches characters x through y {str1,..,strN} : matches str1 through strN (where the strings CAN'T contain wildcards). Examples: 2:245/5[0-18-9] is matched by 2:245/50, 2:245/51, 2:245/58 and 2:245/59 2:243/{95,600} is matched by 2:243/95 and 2:243/600 Events ------ You can enable parts of the routing file only to specific times by enclosing lines with Event ... EndEvent. The exact syntax is: Event Day routing information EndEvent Times are in the format hh:mm. Allowed days are: Mon, Tue, Wed, Thu, Fri, Sat, Sun, WkDay and WkEnd. WkDay means from Mon to Fri and WkEnd stands for Sat and Sun. A syntax like Mon|Tue isn't possible at the moment. Only events with the All identifier may extend over midnight. The lines between Event and EndEvent are only parsed when system time is between start_time and end_time. ATTENTION: Place the events to the end of of ROUTE.JM, because the LAST rule is taken! Changing of mail flavour ------------------------ CHANGE TO where is one of the following: HOLD, NORMAL and CRASH. links must be defined in the link section of CONFIG.JM otherwise JetMail issues a warning. This command only affects bundles, packets and file requests, but not file- attaches and TICs (?FT). CHANGE-FILE TO Same as CHANGE but for fileattaches (?FT). Routing ------- ROUTE-TO Every netmail which destination address matches one of the is routed to the . Every must match a 5D address. Some parts of a are set by JetMail if not specified so that the pattern will match a 5D address. a) JetMail takes a missing zone from your first alias. b) A missing domain is taken from the first link with the same zone as in the pattern. c) If point is missing, * is taken. Example: 245/52 -> 2:245/52.*@fidonet.org 2:245/52.0 -> 2:245/52.0@fidonet.org 90:101/0 -> 90:101/0.*@nest.ftn 90:* -> 90:*.*@nest.ftn 90:400/* -> 90:400/*.*@nest.ftn Please note that specifying .0 in a will cause only mail to THIS system routed to . Mail to points of this node don't pass the pattern matcher!!!!!! Specify FIRST the GENERAL routing and then the special cases (like in ACS and in opposite to IOS). FORWARD-FROM FORWARD-TO to limit netmail distribution only from/to certain portions of the whole network. If these statements aren't used, all netmail is routed to all destinations. HOLD-FOR Put NETmail on hold for all systems matching . CRASH-TO Send NETmail to systems matching crashed. IMMEDIATE-TO Send NETmail immediately to systems matching . DIRECT-TO Send netmail to systems matching directly to the destination system, same as if you set the Direct extended message flag. This command is the same as NO-ROUTE in ACS and others. POLL POLL defines, that you want to poll these links. In , you CAN'T use patterns! You have to define the address(es) without * and ? If no bundle or packet is present, an empty flow file (*.OFT) is created to force BinkleyTerm to call these links in the mail events. If DummyPacket is set, JetMail creates an empty packet instead. If using POLL, JetMail generates normal outbound mail (OAT). PICKUP PICKUP is generally the same as POLL, but it doesn't force Binkley to poll. The links are only polled if mail is waiting for them. If using PICKUP, JetMail generates normal outgoing mail (OAT). CRASH Tells JetMail that you want to deliver all mail for these links crash. It generates CAT bundles. HOLD Tells JetMail that you want to put mail for these links on hold. This is the default if no POLL/PICKUP/CRASH is specified for a link. As you may already noticed, this statement is obsolete but is left in JetMail to remain highest compatibility to routefiles of other software. To make the differences clear between the statements with and without FOR/TO, some examples: DIRECT-TO 2:245/52.0@fidonet.org Puts echomail on hold (default) for the link and sends netmail as a normal mailpacket. POLL 2:243/95@fidonet.org CRASH-TO 2:243/95@fidonet.org NORMAL ECHOmail and sends NETmail CRASHed. If binkley runs an appropriate event, the poll is done wether you have mail to send or not. CRASH 2:243/95@fidonet.org HOLD-FOR 2:243/95@fidonet.org Sends ECHOmail CRASH to the link and puts NETmail on HOLD. HOLD-FOR/CRASH-TO/DIRECT-TO and IMMEDIATE-TO statements applies BEFORE routing!!! DENY Don't process mail from systems matching . The packets are renamed to *.DEN and imported, if no DENY is active for the originating system anymore. This statement can be used in mail events when using small call slots and your machine should not be busy processing received mail. MOVE-MAIL All mail packets for are compressed into the bundle of . This is useful for links with more than one network address, but his mailer can't handle this properly. FILE-FROM Allows file routing from all systems matched by . FILE-TO Allows file routing to all systems matched by . FILE-MAX Only files smaller than in kilobytes (1024 bytes) are routed from/to the systems matched by . HOLD-MAX This one defines the maximum amount of mail laid on hold for links matching . must be defined in kilobytes (1024 bytes). If a link exceeds his limit, the link flag "Passive" is set. USE-ALIAS This one advises JetMail to use as From-address in netmail messages destinated to systems which match the specified patterns. This feature is similar to ACS's Key command. EXCEPT With this command you can define exceptions to a one of these preceeding commands: HOLD-FOR DIRECT-TO CRASH-TO IMMEDIATE-TO DENY FILE-FROM FILE-TO FILE-MAX HOLD-MAX FORWARD-FROM FORWARD-TO Example: You want to delived netmail to the USA directly to it's destination. But netmail to net 205 should go it's normal route path. Then you have to define DIRECT-TO 1:ALL@fidonet.org EXCEPT 1:205/ALL@fidonet.org STATISTICS ========== JetMail will write a statistic of inbound/outbound mail traffic and traffic in the areas into the files INBOUND.HIS, OUTBOUND.HIS, ECHOMAIL.HIS and TOP10.TXT Simply try the JetStat programm. It's really nice. It must be placed to the same place of JETMAIL.TTP if the environment variable JETMAIL is NOT set. You can pass "ASCII" to JetStat in the command line. The boxes of TOP10.TXT are then drawn with ASCII characters. COMMANDLINE =========== JetMail accepts the following options on the commandline (you can use more than one of them at the same time seperated by a blank): IMPORT/TOSS Import mail packets and distribute to connected systems. Don't bundle the packets. They just stay as *.TMP files in the outbound folders. BUNDLE Bundles all *.TMP files in the outbound folders. PACK Scan netmail for messages and export them. SCAN Scan changed echomail areas for messages and export them. The archive bit will be used for determining if the area has been changed. Because of a "misdesign" in TOS versions below 1.04, JetMail isn't able to detect changed areas and because of this, SCAN will act like SCANALL. SCANALL Same as scan. But scan all echomail areas. MAINT/CRUNCH Crunch messagebase according to days/max and minmessages. Example of a logfile line: - 23:27:00 NET_DEV (8/175) In NET_DEV, 8 messages were deleted and 175 are remaining. NOTIFY Sends a netmail to all links with their link parameters like Arcmailtype, Packettype, used AKA for this system and link flags like Passive, AutoArea, FwdRequests and Dummypacket status. It also sends a little inbound/outbound statistic. NOTE: The notify message is only send to links, for which the "NoNotify" flag is NOT active. REPORT Writes a system report message into the netmail folder with some configuration data. AREA= Limit SCAN and MAINT to . LABEL= Activate label in the ROUTE.JM files. Labels are used as following: Label [commands] EndLabel REMOVE= Allows you to remove an area from [D]AREAS.BBS. All links of that area will get an automatic AreaFix disconnect request. +wait -w /w Wait for keypress after execution +logfile -l /l specify other logfile. ALL Short for IMPORT SCAN PACK BUNDLE MAINT JETMAIL INTERFACE FOR ROUTING FILES =================================== JetMail has a build in interface for routing files. JetMail will look for a special netmail message flag and when scanning the netmail. Please contact Daniel Roesen (2:2456/114@fidonet.org or 90:400/602@nest.ftn or 51:601/111@atarinet.ftn) for further information. JETMAIL NETMAIL GATEWAY TO OTHER DOMAINS ======================================== There is a built in interface to send mails to other domains in FidoNet technology networks for systems which no direct access to this network. Example: Daniel Roesen had no NeST access. But he wanted to send mail to some NeST system (and he doesn't know the FidoNet address). His boss (or the host of net 2456) bounced the mail back to Daniel because their messagetrackers didn't know anything about zone 90. What could he do? It's very easy. He just wrote a netmail like this: From: Daniel Roesen on 2:2456/114 To: Gateway on 2:243/6007 ------------------------------------------------------------------------------ To: Daron Brewood % 90:1/0@nest.ftn Hi Daron, .............. JetMail changes the message to From: Gateway on 90:4/0 To: Daron Brewood on 90:1/0 ------------------------------------------------------------------------------ From: Daniel Roesen % 2:2456/114@fidonet.org and distributes it to the destination address. If Daron decides to reply he just changes the word From: to To: You can leave out the '%' if you want, JetMail understands both formats. JETMAIL SERVER ============== JetMail has a built-in remote maintenance function for your system. If you know FDServer (FrontDoor), you should know what I mean. The server function is activated with ServerPassword You can write a netmail to "JetMail Server" on your own system with this password in the subject line. The whole contents of the message (without kludges is written to a file SERVER.BAT in the JetMail system directory. This Batchfile can be executed by your main BBS batchfile. ATTENTION: If JetMail receives a server netmail, the contents is APPENDED to a probably existing SERVER.BAT, so you have to delete the file in your main BBS batchfile. MENTAL SUPPORT: =============== This software was written while listening to: Rage against the machine Clawfinger Dream Theater U2 Pearl Jam Guns N' Roses Red Hot Chilli Peppers Sophie B. Hawkins Joe Satriani Soul Asylum MTV etc... Special thanx to the Jack Daniel's distillery for their great stuff! ;-)