home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
OFFLINE
/
WAFM10.ZIP
/
WAFMAIL.DOC
< prev
next >
Wrap
Text File
|
1991-10-23
|
24KB
|
703 lines
| WaflineMail v1.00r
| (release)
| for Waffle 1.64
| 11/23/1991
[ What is WaflineMail? ]
WaflineMail is a QWK/REP offline mail door that also handles normal
ASCII (text) format and a special "Rnews" format that's compatible
with the Waffle RNEWS.EXE program. An offline maildoor allows you to
download a QWK packet consisting of messages, bulletins, new files
listings, and custom "hello" and "goodbye" screens (bulletins will be
implemented in the future).
You read this QWK packet with an offline mail reader such as SLMR,
Deluxe2, or WinQWK. Using this offline mail reader, you can read and
reply to messages, without tying up the phone line reading mail
online. Use you favorite text editor or word processor while replying
to messages at your convenience. You can also easily save and print
these messages for future reference. Later, you can call back and
upload your replies.
WaflineMail works by looking in a user's JOIN file to determine what
newsgroups they are subscribed to - and the JOIN file MUST exist for
WaflineMail to work! It then executes a batch file to compress the
gathered messages into a more compact form, then executes another
batch file to send the file to the user. On REP uploads, it first
executes a batch file that receives the reply packet from the user,
then another that uncompresses that packet, and, finally, it executes
RNEWS.EXE to import the message into Waffle.
WaflineMail also handles email. It searches the user's directory for
all files in the form USERNAME.NUM, then adds those to a special
message area called Email Messages. After a successful download, the
Email messages are deleted. Email messages can also be imported by
WaflineMail in either ASCII text or REP packet format.
[ Features ]
o Sends mail packets in one of three types:
o QWK (Qmail compatible) packets
o QWK packets can have welcome, news, goodbye, and a new files
list sent with them
o Text (normal ASCII) packets
o Rnews (still ASCII, but compatible with Rnews)
o Rnews packets may be fed into Waffle via Rnews < filename
o Sends Email messages that it finds in the user's directory.
o Recieves reply packets in two formats
o QWK .REP format
o For Email messages, the first line is the destination. Also, the
message must be in the Email Messages section, and be marked
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 2
private.
o Text format
o Newsgroups: and Subject: lines must be specified in uploaded
file
o For Email messages, the first line is the destination. The
Subject: line may come after this, if desired.
o Imports messages into Waffle via Rnews or Rmail, as appropriate.
o User can create a JOIN.WM file that contains newsgroups that
WaflineMail will send.
o Lets user choose which newsgroups to read offline
o Newsgroups must also be in user's JOIN file
o Dynamically adjusts maximum number of messages packed, depending on
user's baud rate and time remaining.
o Calculates approximate transfer time, and won't let user make
transfer if it would exceed user's time limit. Optionally allows
user to download message packets of any length.
o Sysop configurable packer and file transfer protocol
o via batch files
o Swaps itself out of memory (to XMS, EMS 4.0, or disk) when it calls
all external commands, leaving a mere 2K in memory.
o Thanks to swap() version 3.00 by Marty Del Vecchio
o Also uses Spawno v4.0 routines by Ralf Brown.
[ Quick Start ]
[1] Copy the WAFMAIL. to your Waffle EXTERN subdirectory, and edit as
necessary.
[2] Put WAFMAIL.EXE, the WM*.BAT files, the WAFMAIL.HLP file, and
WAFMAIL.CFG in a subdirectory (can be your Waffle BIN
subdirectory).
[3] Edit the configuration file to reflect your system
[4] Set an environment variable named WAFMAIL that points to the
configuration file (SET WAFMAIL=C:\WAFFLE\BIN\WAFMAIL.CFG).
[5] Edit the batch files to reflect the appropriate packer and
protocol.
[6] Make sure user's who use WaflineMail have JOIN files.
[7] See below for further information.
[ Problems ]
Q: Why is WaflineMail is displaying a blank "From:" line, or why is
part of the "From:" line blank?
A: WaflineMail looks in your STATIC file for the "netnews" line. It
then parses this into the "From:" line. However, it ONLY
recognises "%A" (account) and "%W" (identity). It DOES NOT
recognise "%n" (node name). You will have to specifically have this
in your "netnews" line. For example, mine reads
"netnews : %A@cybrelf.halcyon.com (%W)"
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 3
Q: Why isn't WaflineMail finding the correct paths?
A: Check to make sure they exist, first. Next, make sure that they
DON'T end in a "/" or a "\", since WaflineMail adds this on.
Q: Why can't WaflineMail find it's configuration file?
A: Check to make sure your specified the correct one through the "SET
WAFMAIL=" environment variable.
Q: Why can't WaflineMail execute my batch files?
A: Check to make sure the directory where your batch files reside is
in your path.
Q: Why is WaflineMail rejecting all the uploaded replies?
A: Make sure, on Email messages, that the destination is spefified
like this: "To: validor@cybrelf.halcyon.com"
Q: Why are some mail readers not replying in the proper newsgroups?
A: Apparantly, some QWK mail readers want each newsgroup name to be
unique. If you have this problem, you'll have to manually make sure
that there are no duplicates (WaflineMail, by default, uses
everything after the last period).
[ Setup ]
Setup is a bit confusing, but example batch files, etc. are included,
and these should work in most situations with minimal changes (mostly
to the configuration file).
WaflineMail requires several files to operate correctly:
Batch Files:
WMPACK.BAT - executes packer of your choice.
WMUNPACK.BAT - executes unpacker of your choice.
WMSEND.BAT - executes external protocol of your choice.
WMRCV.BAT - executes external protocol in receive mode.
Config Files:
JOIN - user's JOIN file, in the appropriate directory.
JOIN.WM - user's optional WaflineMail JOIN file
USENET - your newsgroups, in the systems directory (can be
named anything, provided you specify it in the
"forum" line of the static file)
WAFMAIL.CFG - WaflineMail's config file
STATIC - your Waffle static file
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 4
Display Files:
WAFMAIL.HLP - WaflineMail's online help file.
In addition to these files, WaflineMail requires your WAFFLE
environment variable to be set correctly and a FOSSIL driver (such as
X00 or BNU) to be loaded. The required files are explained in more
detail below.
WaflineMail calls all batch files, and Rnews/Rmail, via your command
processor (usually COMMAND.COM). Thus, they can be anywhere on your
PATH. WaflineMail will be unable to find WAFMAIL.CFG if it isn't in
the current directory UNLESS you specify a path and file via an
environment variable called WAFMAIL. ("SET WAFMAIL=")
[ WMPACK.BAT ]
This is the batch file that WaflineMail calls to compress the message
packet. It must delete the file after compression, as WaflineMail
checks this to determine success or failure. Most packers will do this
automatically via a "file move" option, or similar. Otherwise, you'll
have to test for success via IF ERRORLEVEL... and delete the file on a
non-zero errorlevel. Example:
pkzip -m %1 %2
The first parameter (%1) is the destination file name, the %2 is the
source file name. The -m means "move files", which deletes the files
on a successful compress. Remember that you may also use Zoo, Lha, or
any other packer, if you want.
[ WMUNPACK.BAT ]
This batch file is called to uncompress received reply packets. It
shouldn't do anything special except compress the appropriate file.
Example:
pkunzip %1 %2
The first parameter (%1) is the source, and the second paramater (%2)
is the destination.
[ WMSEND.BAT ]
This is the batch file that's called when a user downloads a mail
packet. It must delete the file after a successful transfer. Example:
DSZ sz %1
if errorlevel 1 goto end
for %d in (%1) do del %d
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 5
:end
The first parameter (%1) is the file to transfer. Note the user of IF
ERRORLEVEL... to check for an unsuccessful transfer.
[ WMRCV.BAT ]
Called when a user uploads their reply packet. Make sure that a failed
transfer is not kept! Example:
DSZ rz %1
if errorlevel 1 for %d in (%1) do del %d
The first parameter (%1) is the destination directory. Note that DSZ
requires registration for this to work. If your protocol doesn't
support this, you could try switching to the appropriate directory
with a CD %1 command, then returning the directory where you
started... Note that I've had problems using DSZ's "restrict" command.
You may or may not have problems using "restrict" with DSZ.
[ JOIN ]
This is the user's JOIN file, contained in their personal directory.
WaflineMail uses this to find their last read number, and updates this
to reflect the new last read number. It *must* exist! This means the
user must first select their newsgroups in Waffle, or you can set up a
JOIN file for them.
[ JOIN.WM ]
Located in the user's personal directory, this file contains
newsgroups that the user will read offline. The newsgroups specified
must also exist in the user's JOIN file.
Example:
JOIN file
alt.bbs
alt.bbs.waffle
JOIN.WM file
alt.bbs.waffle
In this case, ONLY alt.bbs.waffle would be sent by WaflineMail.
[ USENET ]
This is the system's list of newsgroups. Due to limitations in the QWK
format, only ten characters can be used to describe each newsgroup. By
default, WaflineMail will take the characters (up to ten) after the
last period (".") and use that as the name. If you wish to specify
another name, append a "/qn=NAME" in the USENET file. To prevent
access to a newsgroup (by ANYONE!), make this "/qn=*no*".
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 6
This file can actually be named anything, and can be split into
several file, if desired. WaflineMail checks the "forums" line in your
static file to determine which file(s) to use.
[ WAFMAIL.CFG ]
This is WaflineMail configuration file. It's rather complicated, but
explanations for each of the options are in the file, as well. It's
worth noting that this file must either be in the same directory that
you start WaflineMail from, or specified via an environment variable
named WAFMAIL. For example,
SET WAFMAIL=C:\WAFFLE\BIN\WFML.CFG
would enable WaflineMail to be run from anywhere, and it would always
use the config file named WFML.CFG in your C:\WAFFLE\BIN subdirectory.
Each option consists of a key word followed by an equals sign "=".
Case is not significant. Note that any line that WaflineMail can't
identify is treated as a comment. The examples provided are what I use
personally on my soon-to-be-up BBS.
[ BBSid ]
BBSid=CybrElf
This is where you specify you board id. It can be up to eight
characters long, and is used as the file name for mail packets (like
CYBRELF.QWK). The best thing to use here is probably your uucp name,
but you can use anything.
[ BBSname ]
BBSname=The Cybernetic Elf
This is the full name of your board.
[ BBSlocation ]
BBSlocation=Bothell, WA
This is the location of your board.
[ BBSsysop ]
BBSsysop=Kristopher Nelson
This is your name.
[ BBSphone ]
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 7
BBSphone=(206) 488-3755
This your board's phone number, in any format.
[ Temporary Directories ]
All these can be the same, if you wish. WaflineMail creates
directories below these to hold the temporary files that it uses, then
deletes them after it has finished. Thus, the directories you specify
MUST exist!
[ ScanDir ]
ScanDir=C:\Temp
This holds the scan file that WaflineMail builds. Each entry is
about 512 in size. It is recommended that you use a RAM disk for this
one. The file that is created is WAFMAIL.SCN in the subdirectory
WSCAN.
[ MsgDir ]
MsgDir=C:\Temp
This holds the newsly built mail packet while it is being created, but
before it is compressed. For maximum speed, use a RAM disk, but the
RAM disk must be big enough to hold all the messages. This will give
the fastest speed, though. A hard disk drive is adequate. The
directory created is WMSG.
[ CompDir ]
CompDir=C:\Temp
This holds the mail packet after it has been compressed. The directory
name is WCOMP.
[ LocalQWK ]
LocalQWKDir=C:\Tel\Mail
This is your local QWK packet directory. It is where WaflineMail
stores QWK packets created localy, and where it looks for local REP
packets.
[ LogFile ]
LogFile=C:\Waffle\Admin\WafMail.Log
This is the name of the file that WaflineMail uses to log events and
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 8
errors.
[ HelpFile ]
HelpFile=C:\Waffle\Bin\WafMail.Hlp
This is the file that is displayed when the user selects help
from the
main menu.
[ MaxMsgsPer]
MaxMsgsPer=150
This is the maximum number of messsages to pack up per newsgroup.
[ MaxMsgsTotal ]
MaxMsgsTotal=500
The maximum total number of messages WaflineMail will include in a
packet. Note that WaflineMail adjusts this number dynamically
depending on user's remaining time and baud rate, but it will NEVER
include more than this number.
[ QWKwelcome ]
QWKwelcome=C:\Waffle\Welcome
A file included in QWK packets, it is displayed by the offline
readeras a "welcome" or "hello" screen.
[ QWKnews ]
QWKnews=C:\Waffle\News
Another file included in QWK packets, it is displayd by offline
readers as "news" information.
[ QWKbye ]
QWKbye=C:\Waffle\Bye
Sent with the QWK packet, this file is displayed by the offline reader
as a "goodbye" screen.
[ QWKfiles ]
QWKfile=C:\Waffle\Files
Again, sent with the QWK packet, this file is displayed as the "new
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 9
files list" by the offline reader.
[ WAFMAIL.HLP ]
This is the file that's displayed when a user selects the "H" key from
WaflineMail's main menu. It describes each of the menu options. See
that file if you wish a description of each menu choice. It may be
modified, if you wish.
[ Adding WaflineMail to Your External Commands ]
In your Waffle extern directory, create an extern file named whatever
you want your user's to use to execute WaflineMail. The examples use
WAFMAIL, but you can use whatever you wish. See the Waffle docs for
more info on external commands. An example:
/local /command="wafmail %W /b%b /p%d /t%O /u%A"
The "/local" is necessary because WaflineMail handles its own modem
i/o (via a Fossil driver). Waffle substitutes the %W with the user's
name (not id), the %b becomes the baud rate, the %d the port number,
the %O the time remaining online, and the %A is the user's id.
[ WaflineMail's Command Options ]
WaflineMail has several command line parameters. You may use either a
forward slash ("/") or a dash ("-") to begin the options. They are
summarized below:
wafmail
[REALNAME][/bBPS][/d][/l][/pPORT][/S[0|1|2|3][/tTIME]/uUSERID[/?]
/A: Permit downloading of packets that will take longer than remaining
time
/B: Specify bps rate (/B2400) Defaults to 2400
/D: Specify debug mode. Displays lots of junk.
/L: Don't update lastread pointers (/L) Defaults to FALSE (update)
/P: Specify port, 1 is COM1, etc. (/P2) Defaults to 0 (local)
/R: Specify user's REAL NAME. (/RMY NAME) No default.
/S: Specify alternate swapper (see docs under "SWAPPING")
/T: Time remaining, or how much time user has, in mins (/T60) Defaults
to 60
/U: USERNAME: The user's id (/UJOES) Mandatory!
/?: Display this help screen (/?) Defaults to FALSE
REALNAME: The user's real name. Defaults to user name.
SET WAFMAIL=CONFIGFILENAME Defaults to WafMail.Cfg
[ /A ]
This permits users to download mail packets that will take longer than
the time they have remaining. For example, if a user has 10 minutes
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 10
remaining, and the download will take 15 minutes, WaflineMail will
still permit the download, IF YOU SPECIFY "/A". WaflineMail still
dynamically adjusts max messages downloadable in that time. If the
user has messages and time still remaining, they can download again,
if they want.
[ /B ]
This is the bps rate of the current connection. WaflineMail uses this
to dynamically adjust the maximum number of messages that the user can
download, as well as to calculate the approximate time it will take to
download a packet. If this isn't specified, WaflineMail assumes a 2400
bps connection.
[ /D ]
This basically just displays lots of debugging junk, and adds a lot to
the size of your log file. If you're having inexplicable problems, try
this.
[ /L ]
Primarily useful in testing, if you specify this switch, WaflineMail
won't update the JOIN file after a successful download.
[ /P ]
This is tho comm port that the user is connected on. If this is "0" or
"LOCAL", then WaflineMail assumes a local connection.
[ /S ]
This controls the swapping routine that WaflineMail will use. The
default is Ralf Brown's SPAWNO routines, but you may specify /S1 to
get Marty Del Vecchio's Swap(), or /S2 to turn it off altogethor. If
one doesn't seem to be working right, try the other. They leave almost
the same free memory, with the Swap() routine's taking up about 1-2K
more.
[ /T ]
The amount of time the user has to download a packet in. WaflineMail
also uses this to dynamically adjust maximum number of messages. If it
isn't specified, WaflineMail assumes that the user has 60 minutes.
[ /U ]
The user's User ID (login name). This is absolutely necessary in order
for WaflineMail to function.
[ /? ]
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 11
Displays a quick-reference help screen.
[ REALNAME ]
This is the user's real name, or their "identity", whatever it may be.
This is used primarily in the "From:" line. If it isn't specified,
then WaflineMail assumes that it's the same as the User ID.
[ Registration ]
WaflineMail requires no registration. It is free to use and distribute
However, it IS copyrighted. So please do not sell WaflineMail as your
product, and please don't modify the files in the archive. (See
the "License", below).
Despite this, I'd appreciate if you would drop me a note telling what
kind of setup you have, what you'd like changed, or what you'd like
added. See "Contacting the Author", below.
[ Disclaimer ]
Reasonable care has been taking in creating this program, however, no
warranty is made that it will perform the way you would like. It has
been tested on my own machine, and works fine. If you cannot accept
responsablity, then do not run this progrem. However, if you should
run across a problem, or have a suggestion, please contact the author
so that it may be possible to fix the problem (see "Contacting the
Author").
[ License ]
WaflineMail is Copyright (c) 1991 by Kristopher Nelson. All rights
reserved. You may use and distribute WaflineMail without charge. You
may NOT ADD ADDITIONAL FILES to the archive (although you may convert
it to a different archive type, and you may add archive comments).
Also, you are not permitted to distribute any modified copies of
the source code nor the files here. Modification for your own personal
use is permitted. If you make a change to WaflineMail, contact the
author to see about getting it included in a future version of
WaflineMail.
[ Acknowledgements (ACK!), Copyrights, and Trademarks ]
Deluxe2 & Qmail Mark "Sparky" Herring and Sparkware.
DSZ Chuck Forsberg and Omen Technology Inc.
Lha/Lharc Haruyasu Yoshizaki.
PKZip/PKUnzip Phil Katz and PKWare.
QuickC Microsoft Corporation.
SLMR & TomCat! Greg Hewgill and Technique Computer Systems.
(and now Mustang Software, Inc.)
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 12
Swap() Marty Del Vecchio.
Spawno Ralf Brown.
WinQwk Doug Crocker.
Zoo Rahul Dhesi.
This manual was written with The Delphi Editor, by Delphi Development,
Inc.
Thanks to Tom Liu, Ralph Sims, and Bill Fenner for suggestions,
bug-reports, and general beta-testing.
[ Finding New Releases ]
23:00 News and Mail at (206) 292-9048 will always have the latest
version of WaflineMail available. This is Ralph Sims Waffle Iron
(halcyon.uucp).
The Cybernetic Elf (my BBS) will soon be up and running, and it will
also carry the latest version.
[ Source Code ]
Source code will be released upon request. WaflineMail was compiled
with Microsoft QuickC version 2.5, with the addition of swap() by
Marty Del Vecchio (get SWAP300.ZIP) and SPAWNO 3.0 by Ralf Brown
(SPAWNO40.ZIP). I have no way to test this on any other compilers, but
if you manage to port it, tell me about it!
[ Contacting the Author ]
That's me, Kristopher Nelson. You can contact me in several
ways:
Electronic Mail to:
CompuServe 71321,63 (checked rarely)
or
>INTERNET:validor@cybrelf.halcyon.com
Prodigy CSNK40C
Internet, Bitnet, etc. validor@cybrelf.halcyon.com
or
71321.63@compuserve.com (checked rarely)
FidoNet Silver Lake (1:343/500)
BBS The French Connection Seattle, WA USA
(206) 771-1730 (Kristopher Nelson)
(I should have my own up soon.)
USnail Mail to:
Kristopher Nelson
11902 N.E. 151st PL
Bothell, WA USA
[ History ]
WaflineMail v1.00r Copyright (c) Kristopher Nelson Page 13
(09/02/91) 1.00b First beta release.
(10/23/91) 1.00b Updates and bug-fixes.
(11/14/91) 1.00b Last beta?
(11/23/91) 1.00r Release!
[ Future ]
o Documentation re-write (yes, I know there are typos!!!)
o Bulletins support
o Offline configuration support (add/drop/etc.)
o Multiple packers/protocols
o Support for Waffle version 1.65