X11-QMR(1X)

NAME
X11-QMR -- Qwik Mail Reader for X Windows (aka qmr)

SYNOPSIS
qmr [X options]

DESCRIPTION
X11-QMR is a Qmail reader for Un*x systems running X windows. Qmail is a common mail transport system use by BBS's. X11-QMR provides a Motif interface to the mail packet.

VERSION
1.4

Software Requirements

Obviously X11R4/5, but as well as that you will need ZIP and UNZIP by Mark Adler, Richard B. Wales, Jean-loup Gailly and Kai Uwe Rommel.

If you wish to use the Spell Check option, you will need a suitable spell checker. A good option here is ISPELL by Geoff Kuenning, Manhattan Beach, CA.

To use the ANSI View option, you will need color_xterm or some utility that can read and view an ANSI file.

Unsupported Features of QWK
X11-QMR makes no attempt to obey the Private, or Password features of the QWK system. Why ?, well since you are using Unix, take a mail packet. Unzip it into its components, then run the following command..

    strings messages.dat | more

Hey presto, you have a character based QWK packet reader. Now with a bit of awk, you could have the output looking like a pro package.

You can set the private flag by using the header edit feature. But do be aware that, although you have marked it as private, you have no guarantees that it will in fact be private. I don't think it is correct to lead one to believe that mail is private when it's not.

Setting Up
Assuming X11-QMR has been installed as per the README file with the distribution, this section is for users configuration.

In your HOME directory, make a subdirectory called QMR. Within the QMR directory make two other sub directories, UP and DOWN .

Make sure that /usr/local/bin in in you path. Also make sure that zip and unzip are on your path. These archiving tools should be those described above in the section Software Requirements.

You are now ready to run X11-QMR. Your comm's package should place your down loaded .qwk mail packet in the DOWN directory. X11-QMR will place your reply packet in the UP directory.

Although the mail reader is known as X11-QMR the binary is called qmr. When you execute qmr for the first time, a warning dialog will appear informing you that your config file was not found, and some default assumptions have been made.

CONFIG FILE
The config file is tuned using the Edit - Eenvironment menu selection. Five fields are present.

•   The First is your print command, and is typically lp, on Linux systems, it may be lpr. You may add any flags that you require.

•   The Second field is your spell check command. By default, it uses ISPELL as described in the section Software Requirements.

•   The Third is your external editor, usually vi, but may be any command. The argument passed is the temporary reply file.

•   The Fourth is your ANSI viewer command, by default color_xterm, is used, but may be any viewer command. The argument passed is the ANSI message file.

•   The Fith field is your command to create ZIP archives that are understood by dos. The default is zip -k -q -j

•   The Sixth field is your unzip command, and is unzip -qq -o be de3fault.

•   The final field is the full path to your tag line file. If a tag line file does not exist, one will be built and maintained as you add new tag lines. To delete tag lines, you will need to edit the tag line file by hand. Once you have set your environment, it will be saved and used each time qmr is run.

SIGNATURE FILE
You can create a signature file $(HOME)/QMR/signature . If this file exists, it will be added to the end of your reply messages.

This is currently the only way to add ANSI ART to your messages.

The File Menu

The file menu has two options, Open and Exit. The Exit option will pack any replies you have made, then exit X11-QMR.

The Open option will pop up a file selection dialog, with the filter set to *.[qQ][][kK], and the directory set to your DOWN dir. Selecting a file will result in qmr un zipping the file, and then processing the mail packet.

The Edit Menu

The Edit menu contains to options, Tagline and Environment. Selecting the Tag line option will pop up a selection list of available tag lines. If a new tag line is entered, it will be added to the Tag line file as specified by the environment setting. You may edit the tag line file manually to add your favorite tag lines, using an editor like vi.

The Environment option will invoke the environment editor as described above in the section CONFIG FILE.

The View Menu

Once a mail packet has been loaded, you can use the view menu to activate a selection list of conferences, and a selection list of messages.

This is done using the Conference selection or Message selection menu options.

The Options Menu

Often conferences are empty, or simply not selected. Often in cases like these, it is desirable to send a message in that conference. Selecting the Show empty conferences toggle button within the option menu, will cause qmr to display all conferences, whether they are empty or not.

If a conference is empty, the message window will contain a note to that effect.

There are also four toggle buttons in the option menu. The first is the aPpend signature button. When this is activated, your signature file described above is automatically appended to your messages.

Next is the Random taglines button. This allows you to tell qmr to choose a random tagline from the taglines file described above.

The third toggle button is the Justify replies toggle button. When this is enabled, lines that you enter in your reply messages are left justified to 72 chars in width.

There are times when you may wish to disable this feature, such as when you post source code, or "diagrams".

The fourth and final toggle button is the News mode toggle button. When this is enabled qmr will attempt to build a pro-header at the start of your reply. It also searches for the real name of the news articals author.

When using News mode, I suggest that you disable the justify replies option, as articals often have lines longer than 72 chars. For a more complete discussion on News Mode see the section later on.

The Add this conference button automatically sends Qmail a message with the subject set to ADD, no signature or tagline is appended.

The Drop this conference button automatically sends Qmail a message with the subject set to DROP, no signature or tagline is appended.

Getting Started

When running qmr for the first time, select the Edit -> Eenvironment menu option, and configure your environment.

You will be reminded to do this via the info dialog described in the introduction. NOTE: THE CONFIG FILE HAS CHANGED FORMAT FROM VER 1.1 TO VER 1.2 !

You are now ready to import your QWK mail packet.

Load your qwk packet by selecting File and Open on the main MenuBar. A selection Dialog will be presented, offering all qwk files available.

When you have selected the file to load, choose OK. If a QWK mail packet is already in the BBS's directory, a query dialog will appear. This query dialog will inform you whether the selected mail packet is older or newer than the current messages. At this stage, you can decide whether to replace the existing data or not.

When existing data is replaced, the reply packet is removed, and any replies in it are lost. The message read pointers are also reset. If you choose no, and don't delete the reply packet then you can add new replies to the packet. This is useful for multi off-line mail sessions using the same mail packet.

After selecting the desired option from the query dialog, the file will be unpacked for viewing. When the qwk packet has been un zipped and processed, you will be able to click on the FLASH button to view news bulletins included in the qwk packet. This must be done before you can proceed with mailing activities.

The first News Flash will be from X11-QMR and will give you stats about your mail packet. You will also be able to see the number messages per conference, as well ad the number of personal messages per conferences.

Some BBS's love ANSI, since the QMR message window DOES NOT SUPPORT ANSI the window will contain the ANSI control characters etc and look like garbage. These messages can be viewed using the ANSI View icon button.

After all the news flashes have been displayed, the main reader icon buttons will become mapped.

You may manipulate the Icons buttons as follows..

When moving backwards and forwards between messages and/or conferences, the icon may change to a NO-ENTRY symbol, This signifies the beginning or end of the relevant list.

Double Left Arrow
    The double arrows pointing left select the previous conference. If you are currently displaying the first available conference, and you press the Icon Button again, the icon will change to a NO-ENTRY symbol, and the button will become inactive. This informs you that you are at the first available conference.

Double Right Arrow
    The double arrows pointing right select the next conference. If you are currently displaying the last available conference, and you press the Icon Button again, the icon will change to a NO-ENTRY symbol, and the button will become inactive. This informs you that you are at the last available conference.

Note that the last available conference is your replies, this is known as conference 9000. An information dialog will inform you when you enter conference 9000. Bear in mind the the header of the messages will show the details relating to its originating conference. The new message icon will also be replaced with the trash message icon.

Single Left Arrow
    The single arrow pointing left selects the previous message from the current conference. If you are currently displaying the first message, and you press the Icon Button again, the icon will change to a NO-ENTRY symbol, and the button will become inactive. This informs you that you are viewing the first message available.

Single Right Arrow
    The single arrow pointing right selects the next message from the current conference. If you are currently displaying the last message, and you press the Icon Button again, the icon will change to a NO-ENTRY symbol, and the button will become inactive. This informs you that you are viewing the last message available.

Reply
    The icon containing a page of text in quotes, and a curved arrow is used to initiate a reply to the currently displayed message. When replying to a message, the name of the send will be incorporated in a small header that states. The date, who the message was sent too, and the name of the sender.

All the lines from the message will be copied into the reply, and each line will be preceded by the senders initials and a >.

You may use traditional Text Widget editing features. When using text copy and paste functions with the mouse, be sure to move the pointer to the required insertion position before pressing the paste button.

Note the text cursor is ignored when text is pasted into the text window using the mouse. This operation is different from that of an Xterm window, and has caused quite a few people to think that there was a bug in X11-QMR (myself included, thanks to the excellent response from Metrolink for clarifying this situation for me, RTFM !).

The Title of the reply message Automatically sets itself, and the subject is carried over from the message. To change any of the reply message header details, click on the Head icon.

This will map a dialog where you can change the Destination name, the subject, and/or the status.

For more information on the reply icons see the section titled Reply Mode.

New Message
    The icon containing the ink pot and scroll is used to enter a new message. This icon is not present when conference 9000, your replies, is active.

Activating the new message icon will present a dialog in which you may enter the name of the destination. By default it is filled in as ALL. You must also enter the subject of the message. There are two radio buttons, enabling the selection of Public or Private mail status. Before using the private selection, read the introduction.

Save to Disk
    The icon button with the stiffy disk is used to save the current message to a file. Pressing this icon will map a file selection dialog, you must enter the name of the file you wish to save the message in. If that file exists, you will be presented with a query dialog asking you to choose to Overwrite or Append the message to the file selected. You may also choose to cancel the save operation with the Cancel button.

Print Message
    This icon contains a picture of a popular Ink jet printer. When activated, the message in the display is passed to the print command specified in the environment. Ver 1.2 of qmr now also prints the message header.

Typically this just runs lp. For more information on this see the section on the Config File.

Once the message has been accepted by the print spooler, an information dialog will appear informing you of the success. If for any reason the print command fails, an error dialog will be displayed.

Ansi View
    This icon is used to pass the current message to the Ansi previewer command specified in the environment setting. By default a color_xterm is used. This is coupled to a trivial program called aview. Note aview is not an Ansi viewer, but simply reads a file, displays it on the standard output, then waits for enter to be pressed before exiting.

more and pg are not suitable for this task, as the Ansi escape codes confuse there line counting mechanism.

Reply Mode

When either the reply or the new message icon is selected from the icon tool bar, the icons on the bar will change to those used to control the message reply/editing system. The use of these icons is described bellow.

Post Message
    The first icon, depicts an letter and arrow pointing to a mail receptor, and is used to post your message. On pressing this icon, the current message will be added to the reply packet, and normal reader mode will be resumed, and the icons returned to reader control mode.

Trash Message
    To abandon editing the current message, click the icon with the trash can. This will manage a query dialog, requesting you to confirm that you wish to trash your editing. Selecting yes will discard any editing made and return you to reader mode. Selecting no will un manage the query dialog and continue with your edit session.

Spell Check Message
    Pressing the miss spell icon "Spell Cheq, will result in the current message being passed to the spell checker. This is done utilizing the spell check command string specified in the environment setup.

During this time the qmr interface will be dead. As soon as the spelling checker returns, the corrected message will be displayed in the message window, and reply mode will resume.

For more information on the spelling checker, read the introduction, and the section Config File

Message Header Editor
    Whenever you initiate a reply, the title of the reply message is Automatically set. The subject is carried over from the read message, and the names of the receiver and sender filled in.

To change any of the reply message header details, click on the Head icon. This will map a dialog where you can change the Destination name, the subject, and/or the status.

The To: field now utilizes a combo box, the default value is set to the name of the sender, but the original recipient name may be retrieved by activating the down arrow on the right of the text field, and selecting it from the list.

Remember, as described in the introduction, the notion of a private message is very misleading.

When a new message is initiated, this dialog will automatically be managed. The destination will be set to ALL, and the subject will be blank. You must make any adjustments needed. The header can be edited at any stage while the reply/message is being edited.

External Editor
    The external editor is invoked by pressing the VI icon. This editor is that as set in the Environment setting. For more information, see the section Config File.

Many people who use Un*x find vi the ultimate editor. For this reason the external editor feature was added.

Any text that you import utilizing the external editor will be brought back into the qmr editor.

Format 72 Columns
    The last icon will reformat the message keeping your text width down to a maximum of 72 characters is possible.

Although the editor will word wrap at 80 columns, it is desirable to keep the width of you message to below 72 chars. This allows someone to respond to your message, including your initials at the start of each line you wrote, without the message wrapping.

If however a line begins with an initials sequence, then the line is allowed to be up to 80 chars long. These simple features will make your messages look much neater.

Messages can be automatically justified, see the section on the Option menu.

X Resources

The font used is the only resource set by default. It is set to pc8x14. You can change this to pc8x16 or pc8x8, inside your .Xdefaults or using the X -fn option.

You might wish to change the colour of the edit window. The windows Text is called msg_text.

Here is an example of the lines needed in your .Xdefaults to set qmr to use pc8x8 font for general purposes, and pc8x14 font for the edit window. In addition the edit window will have a foreground colour of cyan and a background of navy.

  qmr*fontList:             pc8x8
  qmr*msg_text*fontList:    pc8x14
  qmr*msg_text*foreground:  cyan
  qmr*msg_text*background:  navy

Resources that form the defaults are..

  *fontList:                      pc8x8
  *msg_text*fontList:             pc8x14
  *msg_text*foreground:           cyan
  *msg_text*background:           navy
  *msg_text.scrollHorizontal:     false
  *options*auto_sig_tb*Set:       True
  *options*auto_sig_tb*Set:       True
  *options*random_tag_tb*Set:     True
  *options*justify_tb*Set:        True

these can be found in /usr/lib/X11/app-defaults/X11-QMR

Miscellaneous Features

The header information box, displays normal info. Next to the Message number is a flag indicating whether this message has been read or not.

When a personal message is displayed, qmr will beep. This may be changed in a later release to some other form of indication, like color. Comments would be appreciated. (To date Ver 1.2 no comments, so I assume its OK, or that ALL are secretly politicians :)

Tag lines may be up to 60 characters long.

News Mode

What is News mode ? Well since QWK is such a limited (stupid ?) format, it is totally unsuitable for Usenet News. To this end techniques have been developed to allow a QWK mail message to be used as a source for news.

This is accomplished by including the needed information in the actual message body. This is needed as the standard QWK message header is too small to even contain some names used for newsgroups. Three basic fields are needed, Newsgroups: Subject: and From:.

As you can imagine entering this data each time you wish to enter or reply to an artical would be very irritating. It is here that X11-QMR helps. When News mode is enabled, and you reply to an artical, qmr will extract the Newsgroups:, and Subject: fields, including a Re: in the subject if needed. It will also insert a From: field with your name in.

The From: field gets competed via one of two ways. If you have an environment variable called QMR_EMAIL set, this is taken, if this fails, the user name as given by the BBS is used. Since the news will probably be collected with "uqwk", this will probably be insufficient. An example of setting the QME_EMAIL environment would be..

setenv QMR_EMAIL "ross@wanda.iaccess.za (Ross Linder)"

If you are entering a new message, there is no source message from which the required Newsgroups: and Subject: fields could be extracted. In this case one of two techniques are used to set the Newsgroups: field. First qmr tries to open a nnews database in the BBS directory. This database is a simple ASCII file that contains the conference number followed by the full newsgroup name. If this file does not exist, then the Newsgroups: name is taken from the QWK header.

As I said earlier, the QWK header is to limited to handle Usenet names. For example comp.os.linux.admin becomes comp.os.linux.a And comp.os.linux.announce also becomes comp.os.linux.a

An example of a nnews.db file looks like this.

0 comp.os.linux.admin
1 comp.os.linux.announce
2 comp.os.msdos.desqview
3 comp.windows.x.motif
4 rec.pets.dogs.activities
5 rec.pets.dogs.info
6 rec.pets.dogs.behavior
7 rec.pets.dogs.misc

This database file should be created for all BBS's that provide news via a Unix system using uqwk or similar.

The naming of the BBS directory has changed as of version 1.4, the directory name is now taken as ~/QMR/<bbs_name> where bbs_name is generated from the name of the qwk mail packet by taking everything up to the first period.

Eg: Assume the name of my qwk mail packet is called newnews.qwk then the BBS directory for that would be "~/QMR/newnews". This means that you can keep old mail packets and store them up for reference later on. Versions of qmr prior to 1.4 took the qwk mail packet name up to the last period. Eg newnews.qwk.19.dec generated a BBS directory called "~/QMR/newnews.qwk.19" with version 1.4 this will still use "~/QMR/newnews"

Using uqwk

Here are two simple shell scripts that will collect news for processing offline using uwqk, and then for posting any replies.

The getnews shell script.

rm newnews.qwk
uqwk +e +h +m +n
zip newnews.qwk control.dat messages.dat
rm control.dat messages.dat *.ndx

And the postnews shell script..

unzip newnews.rep
uqwk -m -n +X -Rnewnews.msg
rm newnews.rep

This assumes that your packets are known as "newnews"

BUGS

Names with more than two words are Uncased properly, any part of the name beyond the second word is left in capitals. Also only the first two words of the name are used to create the reply initials.

Eg. ALLISTER VAN TONDER becomes Allister Van TONDER, and the initials become AV>

Author

X11-QMR was developed by Ross C linder. Bugs and suggestions can be sent via email to ross@wanda.iaccess.za status of X11-QMR and all my Linux projects can be got via finger to rossl@mickey.iaccess.za.

The latest version of X11-QMR should always be available via ftp from iaccess.za it has its own home directory /pub/unix/x11-qmr

As internet service providers don't believe in "freebees" to maintain this site costs money, if you get X11-QMR from it, please send me mail to that effect. This will enable me to evaluate and justify the cost of this service.

The sources should be available at most ftp sites that carry Linux.

Thanks for you time, you may contact me in any one of the following ways.

By E-Mail ....... ross@wanda.iaccess.za
By Post ......... Ross Linder
                  P.O. Box 101
                  Bromhof
                  2154
                  South Africa
By Voice ........ +27 (11) 793-4818 (SADT = GMT+2)