IMail

IMail is an electronic mail system designed for use with 
Microsoft Windows 3.1 or later and with Microsoft Windows NT 
3.1 or later. IMail consists of a User Interface for reading 
and creating mail and the underlying mail transport programs 
to allow complete interconnection with the current Internet 
world and any system that is based on the Simple Mail 
Transport Protocol (SMTP) or the Post Office Protocol 3 
(POP3).

IMail consists of an SMTP Listener with full SMTP 
capabilities, a POP3 Listener/Server that allows other POP3 
compliant mail readers to interact with IMail, a POP3 Client 
and an SMTP Client.

IMail is able to operate in a number of different forms 
depending on your situation. It can act as a complete stand 
alone mail system, as strictly a client off of a UNIX host 
system or in varying combinations.



1.  

System Requirements

Microsoft Windows 3.1 or later or Windows NT 3.1 or later.

2.  5 MB of disk space for program files.

3.  4 MB of memory.

4.  Installed network adaptor (or SLIP) and a working 
Windows Sockets stack.



1.  

Configuration

Click on the IConfig icon.

a.  Register yourself as a user. The userid must be 8 or 
less characters and cannot contain a space, hyphen or equal 
sign.

b.  Register any desired aliases. It is a requirement that 
postmaster exist as an alias.

c.  Set desired options. You must currently set a local host 
name in the Smart Gateway field. This should be a host that 
is operational at all times and knows how to send mail to 
any remote networks that you send mail to. The Send Direct 
option should be enabled (checked).

2.  Execute IMail.



a.  Select your userid in the drop down list.

b.  Go to the Options dialog box and set any desired options 
for your userid. These options are persistent for your 
userid.

Overview of Electronic Mail

Electronic mail is a term used to describe the processes and 
functions that allow information to be passed directly from 
one individual to one or more other individuals by 
electronic means in a batch mode.



Overview of SMTP

SMTP stands for Simple Mail Transfer Protocol and is defined 
in RFC 821. The objective of SMTP is to transfer mail 
reliably and efficiently. SMTP defines the interaction 
between mail systems to facilitate the transfer of 
electronic mail even if the mail systems are not alike.



Overview of MIME

MIME stands for Multipurpose Internet Mail Extensions and is 
defined in Request For Comments (RFC) 1521. MIME is designed 
to facilitate the inclusion of multiple objects in a single 
message, to represent body text in character sets other than 
US-ASCII, to represent formatted multi-font messages, to 
represent non-textual material such as images and audio 
fragments, and generally to facilitate later extensions 
defining new types of Internet mail for use by cooperating 
mail agents.

Version 1 of MIME does not extend Internet mail header 
fields to permit anything other than US-ASCII text data.



Overview of POP3

POP3 stands for Post Office Protocols version 3 and is 
defined in Request for Comments (RFC) 1460. POP3 is intended 
to permit a workstation to dynamically access a maildrop on 
a server host in a useful fashion. Usually, this means that 
the POP3 is used to allow a workstation to retrieve mail 
that the server is holding for it.



Configuring IMail

You must set some overall system options before first using 
IMail. This is done by selecting the Options menu option in 
the ICONF program.



Once you have selected this menu item, the following dialog 
is displayed.



Send Direct   If this option is not checked, then all mail 
(except local to the workstation) is sent to the smart 
gateway for delivery.

Smart gateway     This MUST be set to an intelligent local 
mail host that is always powered on and operational. This 
host should understand how to send mail to any remote 
systems that you routinely send mail to. This would include 
things like UUCP mail, mail that is behind other gateways, 
etc. Mail headers are not modified when sent through the 
smart gateway.

Default host name The name that is entered here is 
automatically added to the end of any recipient userid that 
is not on the local workstation if no host is specified. 
This could allow you to send mail to local mail hub that 
knows how to redirect mail to specific mail systems based on 
a userid. If you do not have a common host at your site, 
then this should either be set to the string "LOCALHOST" or 
left blank.

Queue Timer   This is used to determine how often ismtpd 
will retry sending messages that are not deliverable due to 
a remote system being unaccessible. If you do not wish to 
run ismtpd, you can run a third party application that can 
activate ismtpd1 on a regular basis, or you can run ismtpd1 
when you want to attempt to clear any outbound mail.

Auto start  If this is checked, ismtpd will automatically 
start when you execute imail.

Auto stop If this is checked, ismtpd will automatically stop 
when you exit imail.

Gateway mail for remote hosts and clients If this is 
checked, ismtpd will accept mail addressed to any host, not 
just hosts that it knows the IP address of. This is only 
useful if you are running a "hub" system and you have client 
workstations that you wish to point to a single host system 
(this host) and if you have the Smart Gateway defined. This 
can increase the load on your system! Primary reason for 
this option is to be able to handle mail from POP3 clients 
that want to send their mail to the same place where they 
retrieve mail.

Allow remote access to local lists If this option is 
checked, remote users can send mail to distribution lists 
that you may have defined. The default for this option is 
on, however a user may wish to turn it off to keep others 
from being able to send mail to a list and thereby tieing up 
your system.

Official Host Name  This should be the full domain name for 
your workstation. It must be a name that is registered with 
the Domain Name Server for your domain or a name that exists 
in the local hosts file in your organization. This name will 
be ignored if it is set to a name that doesn't resolve to 
your current system. This name is used in From and Sender 
lines.

Time zone Up to 10 characters of time zone information. This 
can be EST, EST5EDT, -500 or whatever your network 
administrator recommends.

Registering Users

You must register yourself and anyone else who uses your 
computer system. This is done by selecting the Users menu 
option in ICONF.



To register a new user, add the name in the edit control 
under the word Users.

Full Name Enter your full name the way you want it to appear 
to recipients of your mail messages.

Return Mail Address Enter a mail address that other people 
can use to send mail to you. Note that this may be on a 
different system or on your current system. It MUST contain 
a full domain name so remote users can respond.

Main Mailbox    Leave this as (default) unless you know that 
you need to have your MAIN mailbox in a different location. 
This mailbox name should end with the .MBX extension.

Inbound POP Password This is the password that would be 
necessary if this user were to connect to the ipop3d server 
running on your local workstation.

Registering Aliases

It is necessary for you to register aliases on your computer 
system. At a minimum the postmaster alias must be set. This 
is done by selecting the Aliases menu option in iconf.



Aliases       Enter the nickname here or select one of the 
existing aliases from the list box. You could have aliases 
such as John_Q._Public or listserv. The alias cannot contain 
spaces, hyphens or equal signs.

Mail Address    Enter what you wish for the alias to resolve 
to here. This could be something like lisa-special which 
would cause mail to be delivered to the user lisa's special 
mailbox. This can also be the full pathname of a file that 
contains a list of users (one per line) to send mail to. 
(This is a distribution list.)

Registered Users        This is a list of the users 
registered on the local workstation. This way you can just 
select a name in this box to become the mail address.

You must press the Save button after entering an alias in 
order for the information to be saved.

Note: The RFCs governing mail require you to have a 
postmaster alias on your system. This must be implemented as 
an alias since userids can only be up to eight characters 
long.



Logging On

IMail has the ability to manage multiple users sharing the 
same computer system. In order to support this and also to 
set the manner that IMail interacts with the world, you have 
to "logon" to the mail system. The logon dialog box appears 
when you first invoke IMail. In this dialog box, you select 
the userid (the short name by which the system recognizes 
you), enter your full text name and the address where other 
people can send you electronic mail.



In the lower half of the dialog box, you can configure IMail 
to read mail from a remote system through the use of the 
Post Office Protocol (POP3) supported by many UNIX host 
systems or another IMail system. In the POP3 section of the 
dialog box, you enter the host name of the remote system, 
the userid that you are registered with on the remote system 
and the password for the remote system.

To read mail from a remote system and to leave mail that you 
don't delete on that system, leave the Delete Host Mail 
option unchecked. The POP3 Mail Check option must be checked 
if you wish to interact with a remote system in this manner. 
When operating in this mode, the contents of any local 
mailboxes are ignored. You will still have the ability to 
save (Hold) messages in a local mailbox if desired as well 
as the ability to print a message, reply to a sender or to 
forward a message to another user. You will also have the 
ability to delete messages from the remote system. Note that 
when operating in this mode, IMail will indicate that all 
messages are new when they first are displayed. The reason 
for this is that IMail assumes you are reading your mail 
from a different location than normal and will not store 
information on the local system. Also, the most common POP 
daemon used on UNIX host systems does not support the check 
for newly arrived mail and you will not know if you have new 
mail on the UNIX host until you "re-logon" the remote host. 
The POP3 daemon included with IMail does support the check 
and does update pointers used to indicate new mail has 
arrived on the host system. A connection is maintained with 
the host system when operating in this mode!

To move mail from the remote system, you would have both the 
POP3 Mail Check and Delete Host Mail options checked. The 
Check time at the bottom of the dialog box determines how 
often IMail will re-establish a connection to the host 
system to check for the arrival of new mail. When operating 
in this mode, IMail transfers the mail from the remote host 
into your MAIN mailbox and then displays the contents of 
your MAIN mailbox. If you are running the SMTP daemon on 
your system and mail arrives directly to your system, you 
will be notified of this mail at the same time the check for 
new mail is made on the remote system.

If the POP3 Mail Check option is not checked, any settings 
in the bottom half of the screen are ignored with the 
exception of the Check time. This is used to determine how 
often IMail will check your local mailbox for newly arrived 
mail.

The mailbox dropdown list in the logon dialog allows you to 
start in the desired mailbox. This can be useful if you wish 
to have mail from a specific POP host downloaded into a 
mailbox other than main.

You can "re-logon" at anytime by selecting the Logon menu 
item in the Files menu on the main window.



Hints on using POP mail

When you logon a remote POP host and do not have the Delete 
Host Mail option checked, the local mailboxes are ignored 
unless you wish to transfer mail from the POP host to the 
local workstation. One side affect of this is that you will 
not be notified of new mail that arrives directly on your 
workstation including mail that you may send to yourself.

The recommended method for reading mail with POP is to have 
the Delete Host Mail option checked. This allows you to make 
the most efficient use of the network and computing 
resources. In addition, you can directly receive mail 
addressed to you from a remote system improving mail 
privacy, at the same time as monitoring a host via POP3 for 
new mail. The one drawback of this method is the amount of 
available disk space that you may have on your workstation.

Please note that your POP connection is dropped when you 
change mailboxes. If you change mailboxes and wish to 
reestablish the POP connection, use the Logon menu item in 
the Files menu.



The Main Window

The Main Window in IMail provides you with the ability to 
change mailboxes; view, delete or transfer (save) mail 
messages; set options; start over (logon) or to exit. The 
main window has five basic parts; a menu line, a button bar, 
a mailbox listing, a message listing and a status area.



At the top of the windows there is a row of buttons used to 
control your activities. These buttons may be operated by 
pointing to the button with your mouse and clicking the left 
button of your mouse or by pressing and holding the ALT key 
down and then pressing the key of the underlined letter in 
the buttons title. (Press ALT+V to view the highlighted 
message, ALT+D to delete the highlighted message, etc..)

Right below the buttons is a window that contains a list of 
your mailboxes. The size of this window is set in the 
options screen and can be zero, thereby eliminating the 
window from the display. This window displays the names of 
any mailboxes that you may have, the number of messages that 
were in the mailbox the last time you read that mailbox, an 
indicator of new mail in a mailbox (if any), the size of the 
mailbox in characters, and the date and time that mail was 
last placed into that mailbox or the mailbox was last read. 
Initially, this window will only have the mailbox MAIN 
displayed. The MAIN mailbox cannot be renamed or deleted.

Below the mailbox listing window is a message listing 
window. This usually takes up the majority of the space in 
the main window and this is where the messages in a mailbox 
are listed. The listing for a mailbox consists of a four 
digit message number, up to 15 characters of the senders 
name, the date the message was sent and the subject line of 
the message. You can select messages to read by pointing to 
the message to read with your mouse and double-clicking the 
left mouse button or you can use the up and down arrow keys 
to select a message and press ENTER.

Note that it is possible to have more than one message 
window open at a time. This MAY cause you some confusion if 
you change mailboxes or delete mail, etc. when a second 
message window is open. It should not harm the contents of 
your mailboxes.



Main Window Buttons

View    Display the contents of the currently selected 
(highlighted) mail message.

Delete      Mark the currently selected mail message for 
deletion. (If the current message is already deleted, 
pressing this button will un-delete the mail message as long 
as you do not have POP Mail Check checked and Delete Host 
Mail un-checked.)

Transfer        Display a dialog box allowing you to 
transfer the contents of a message into another mailbox or 
file. Note: Messages that have MIME encoded binary 
attachments are copied in-total to the other mailbox or file 
when transferred in this manner. This is different than the 
action that will happen when you select Transfer while 
reading a message. If the Delete on transfer option is set, 
the message is automatically tagged for deletion when 
successfully transferred. You can either select a name that 
is displayed in the listbox or enter a new name (whereby a 
new mailbox is automatically created). You do not have to 
specify the .mbx extension. In order to save a message to a 
file that doesn't have an extension, you must specify the 
simple name followed immediately by a period.

Reply     Call the message creation interface with the 
recipient set to the sender of the current message. The 
subject is automatically set to "Re: old_subject". You are 
prompted to include the original contents of the mail 
message that you are answering in the body of the new 
message. Note: If the message is too large, it will not be 
included as editable text and you are again prompted to 
include it as an attached file.

Filter      Display a dialog box that allows you to limit 
the messages that are displayed on the main screen, based on 
the content of any header. It is possible to control whether 
IMail will preserve case during the search (by setting the 
Match Case option) or for you to simply say which messages 
not to display (by setting the Reverse Filter option). Note: 
You must set the Enable Filter option in order for the 
filter to actually be used. The filter will stay on until 
you come back to the dialog box and disable it or until you 
exit and restart IMail. This allows you to set a filter and 
to then apply it to each of your mailboxes in turn.



Search      Display a dialog box that allows you to search 
the current mailbox for a specific word or phrase. If it is 
found, you are taken directly to the message and the search 
phrase is highlighted. The initial starting message number 
is always one greater than the message number that is 
selected in the message listing window (or 0 if the last 
message is selected). Note: Sometimes IMail may find the 
search phrase in the headers of a message. In this case you 
will not see the highlight (or maybe not even see the search 
phrase in the message) unless you turn on the All lines 
option is the message viewing options dialog. Once you 
return to the main subjects window, you can search for the 
phrase starting with the next window by either pressing 
ALT+F3 or by selecting Search Again from the Locate menu. If 
you have a filter set, you can limit the search to only the 
messages that match the filter.



Mailboxes Display a dialog box listing all mailboxes that 
you currently have. From this dialog box, you can create new 
mailboxes (which is not really necessary as they are 
automatically created when you hold mail into a new name), 
delete mailboxes, rename mailboxes or to select a new 
mailbox to view.



In the mailboxes display, pressing Create pop up a dialog. 
The name you enter should be eight characters or less and 
cannot contain a space, tab, hyphen (-), equal sign (=), 
greater than (<), less than (>), period (.) or any character 
that is not valid in a DOS file name.

In the mailboxes display, if you press Delete, you will get 
a dialog requesting confirmation of the delete. The mailbox 
is unrecoverable once you have deleted it if you have do not 
have a system backup.

To rename a mailbox, press Rename. The name you enter should 
be eight characters or less and cannot contain a space, tab, 
hyphen (-), equal sign (=), greater than (<), less than (>), 
period (.) or any character that is not valid in a DOS file 
name.

Check     Cause IMail to check for new mail. Note: The most 
common POP daemon used on UNIX host systems does not support 
the check for newly arrived mail when you have the POP Mail 
Check checked and the Delete Host Mail un-checked and you 
will not know if you have new mail on the UNIX host until 
you "re-logon" the remote host. The POP3 daemon included 
with IMail does support the check and does update pointers 
used to indicate new mail has arrived on the host system.

Send    Invoke the interface used to create a new message.

Options       Display a dialog box with modifiable program 
options.

Exit    Write all changes, close the current mailbox and 
exit the program.

There are a few actions that can only be done from the 
menus:

Files->Logon (CTRL+L) Write all changes and close the 
current mailbox and display the initial logon dialog box.

Files->UnDelAll (ALT+U) Undelete all deleted mail messages. 
This includes any remote POP mail messages that you have 
deleted when operating with the Delete Host Mail option 
un-checked. Note: When operating on a remote host with POP 
in this manner, this is the only way to undelete mail.

Help->About (ALT+A) Display a dialog box showing the 
copyright and available memory.

Locate->Search Again (CTRL+F3) Search forward for the next 
occurrence of the search string.

The Message Window

The message window is where you view the actual contents of 
a mail message and spend most of your time in IMail. The 
message window is divided into four main screen areas. 
Across the top is a button bar and an area where the headers 
of a message are displayed. The center of the screen is 
where the body of the mail message is displayed. The bottom 
of the screen is a status line.



At the top of the windows there is a row of buttons used to 
control your activities. These buttons may be operated by 
pointing to the button with your mouse and clicking the left 
button of your mouse or by pressing and holding the ALT key 
down and then pressing the key of the underlined letter in 
the buttons title. (Press ALT+R to reply to sender of the 
message, ALT+D to delete the message, etc..)

Right below the row of buttons is an area where the headers 
of a message are displayed if you have the options set to 
display these. Only certain headers will ever be displayed 
in this area. If you wish to view all the headers of a 
message, select the All headers option in the message window 
options dialog box.

The center of the window is a large area where the contents 
of a mail message are displayed. This area will include a 
scroll bar on the right side of the screen if the message is 
larger than will fit in the window. There may also be a 
scroll bar across the bottom of the area, if the word wrap 
option is turned off. You can select text that is displayed 
in this area and copy it to the clipboard by pointing to the 
first character you wish to copy and holding the left mouse 
button down, highlight the text you want. To copy 
highlighted text to the clipboard, click the right mouse 
button once or press CTRL-C.

At the bottom of the screen is a status line. This line 
normally displays some information about the message you are 
reading and feedback from operations such as Holding a 
message and can contain any error messages associated with 
the message.

Note that it is possible to have more than one message 
window open at a time. This may cause you some confusion if 
you change mailboxes or delete mail, etc. when a second 
message window is open. It should not harm the contents of 
your mailboxes.

Message Window Buttons

Subject (ESC)     Return to the main window to view the 
subjects of messages.

<<  Clicking here (or pressing the left arrow key) will take 
to next earlier message that is not deleted or to the main 
window if there are no available messages before this 
message.

>>  Clicking here (or pressing the right arrow key) will 
take to next message that is not deleted or to the main 
window if there are no more available messages after this 
message.

Reply     Call the message creation interface with the 
recipient set to the sender of the current message. The 
subject is automatically set to "Re: old_subject". You are 
prompted whether to include the old message. Note: If the 
message is too large, it will not be included as editable 
text and you are again prompted to include it as an attached 
file.

Forward       Call the message creation interface with the 
subject set to the current subject and the body of the 
message as editable text. Note: If the message is too large, 
it will not be included as editable text and you are again 
prompted to include it as an attached file. 

Delete      Mark the currently selected mail message for 
deletion. (If the current message is already deleted, 
pressing this button will un-delete the mail message. Note 
you cannot read a deleted message when reading and leaving 
mail on a remote POP system.)

Transfer        Display a dialog box allowing you to 
transfer the contents of a message into another mailbox or 
file. Note: Only the displayed portion of messages that have 
MIME encoded binary attachments are copied to the other 
mailbox or file when transferred in this manner. This is 
different than the action that will happen when you select 
Transfer while in the main window. If the Delete on transfer 
option is set, the message is automatically tagged for 
deletion when successfully transferred and you are moved to 
the next available message.

Print     Print the contents of the current message. A 
dialog box is presented allowing you to select the desired 
printer and number of copies. Only the headers that are 
displayed on the screen are printed. If you want all headers 
printed, select the All headers option in the message 
options dialog box prior to selecting print.

Send    Invoke the interface used to create a new message.

Options       Display a dialog box with modifiable message 
options.

Exit    Write all changes, close the current mailbox and 
exit the program.

Save Name Save the address of the sender of the message to 
your personal address book.

The following action can only be done from the menus:

Help->About (ALT+A) Display a dialog box showing the 
copyright and available memory.



Reading a message with an attachment

If you have the Auto save attachments option turned off and 
read a message that has an attachment for the first time, 
you will be prompted for the name to save the attached file 
to as shown in the dialog box below. If you press Cancel, 
the file will not be saved. The only way to get this prompt 
again is to transfer the message FROM THE MAIN WINDOW to 
another mailbox and read the message again from that new 
mailbox.





Creating Mail Messages

All the fun of reading mail wouldn't be any good without the 
ability to send mail and, IMail attempts to provide you an 
excellent interface to do this as well. The interface for 
creating mail gives you the ability to use address books, 
aliases, distribution lists (files) and your memory for 
determining recipients. You can also attach any type of file 
to a mail message (provided your intended recipient is also 
using IMail or a MIME compliant mail system). Files can be 
attached by dragging them from the Windows file manager or 
through a standard Windows dialog box. Copies of outbound 
message can also be automatically be saved through the use 
of an Auto BCC option.

The message creation window is a standard Windows multiline 
edit control, so it supports cut, copy and paste through 
both the Edit menu and by standard Windows keystroke, 
Ctrl-X, Ctrl-C and Ctrl-V. Additionally, you can paste an 
ASCII text file directly into the message body from the Edit 
menu. (This is different than attaching a file, as no 
special headers are used and the recipient will get the 
message properly even if they are not using a MIME 
compatible mail system.)



The AB buttons to the right of the To, CC and BCC recipient 
header fields are used to retrieve names from the address 
book for that specific header. The AddrBook menu option is 
only for Address Book maintenance. You can also use the 
standard cut (Ctrl-X), copy (Ctrl-C) and paste (Ctrl-V) keys 
while entering text into the recipient fields. You cannot 
use the menu options for doing the same while in the 
recipient fields.

Multiple recipients may be specified in any of the recipient 
fields by separating the recipients with commas. If a 
recipient name has a comma in it, you must enclose the field 
with quotes. The recipient addresses are limited to 500 
characters in each of the fields. If you have more than 
that, you can put up to a 100 names in a file (one recipient 
per line, properly formatted) and specify the full path to 
the file as the recipient. (You can set up aliases to point 
to files like this that you use repeatedly.)



Specifying Recipients

Recipients are specified in one of the following formats 
(any of these can and should use angled brackets <> to force 
the focus to the correct portion of the name):

user    This is the simplest form used when the recipient 
can be found on the local system or on the "Default host 
name" specified using ICONF in the system options. (Many 
sites have all their users registered on a network mail 
gateway system such as MIT.EDU or USMA.EDU).

user-mailbox or user-mailbox@remotehost This form of address 
is used when sending mail to another IMail system as well as 
some of the other intelligent mail systems, where the mail 
is automatically delivered to the specified mailbox of the 
user. An equal sign (=) may be used in place of the hyphen 
(-).

user@host This form is used to specify a user located on a 
different host system. In this (and all following) case the 
host must be a name that your system can resolve without 
ambiguity or that your "Smart Gateway" can resolve without 
ambiguity.

@host1:user@host2 This is an address form that is used to cause mail for user 
to be delivered to host1 for third party delivery to host2.

user%host2@host1        This is an address form that is used 
to cause mail for user to be delivered to host1 for third 
party delivery to host2. There can actually be more than one 
percent sign to the left of the @ sign, in which case you 
are specifying the route for the message to take from right 
to left.

Any of the above can be used in the following variations (it 
is recommended to always enclose the address portion in 
angle brackets <>):

"text name" <user@host>       This is the form used by the 
address book to specify both the full text name of the user 
(or a nickname) and the address. In this case the <angle 
brackets> are required.

user@host (text name)     This is the form that a lot of 
systems use in their From headers. The portion outside the 
parenthesis must be a valid address. If a comma in used 
inside the parentheses, it must be quoted.

IMail also supports any combination of the above address 
forms in a flat text file to be used as a distribution list. 
In this case, you would place one address per line in the 
file and specify the full path name to the file as the 
recipient. This form of addressing is only available when 
mailed from the local system. You cannot send mail to a 
pathname at a different system (no c:\mail\users\name\
list1.lst@remote_host is allowed). If you want other users 
to be able to send mail to a list that you maintain, you 
would have to create an alias to that list of names that had 
a mail address pointing to the file.

Multiple recipients on a line are separated by commas. 
Spaces do not delimit recipients.



Working with the Address Book

To help make life a little easier for you, IMail has 
something known as an Address Book. When you receive mail, 
you can click on the Save Name button and the sender of the 
current message is automatically saved to your personal 
address book. You can also add names to this book by 
entering the information into the Name and Address fields of 
the address book and pressing the Add button. Do not enter 
quotes or angle brackets when entering information as IMail 
will do it for you.

Three books are available for you. The first, Local 
Addresses, is made up of the list of users and aliases 
registered on your system. The second, Shared Names, is a 
list that all users on your system will see and can use. The 
third, Personal Names, is a separate list for each 
registered user.



The Delete button is not available when you are in the Local 
Addresses address book. User names and system aliases can 
only be added or deleted using the ICONF utility. The 
"listserv" name listed in the dialog box is an alias that 
points to a distribution list.

To add names to the Shared or Local Addresses, you enter the 
full text name that you want to appear in the quotes in the 
Name edit control and enter the full mail address of the 
user in the Address edit control. Then you press the Add 
button. In order for the name to actually be saved, you must 
exit the dialog box by way of the OK button. When you do 
this, you will be prompted to save the changes.

While in the list, you can hold the SHIFT or the CTRL key 
down while clicking the mouse button to select multiple 
items. To select a list of items, click on the first item 
and then hold the SHIFT key down and click on the last item 
in the list that you want selected. To select non-sequencial 
items, hold the CTRL key down and click on each desired 
item. (Clicking on an item a second time with the CTRL key 
down will unselect the item.)

If you invoked the Address Book by pressing one of the AB 
buttons, the selected items will be copied to the 
corresponding recipient field when you press the OK button. 
If you made changes to the address book, you must click the 
OK button in order to be prompted to save changes in the 
book.



Address book and mail lists

Mail (or distribution) lists are not much different than the 
standard files used by the address book. This allows you to 
use the address book to create and modify mail lists as well 
as being able to select a name from the mail list.

You can select a user out of a mail list that you maintain 
by selecting the List radio control in the address book. 
Mail lists may be modified or created through this same 
mechanism. A new list can be created by entering a new name 
as the File Name and pressing Yes in the resulting message 
box.



Attaching Files

Files may be attached to outbound mail messages by either 
dragging a file from the Windows file manager and dropping 
it on the mail message or by pressing the Attach button in 
the lower right corner of the window. When you click the 
Attach button, the following dialog box appears.



Once you have selected a file (or more) to be attached, the 
complete path to the attached file is displayed at the 
bottom of the screen.



Options

No program that could ever be written would satisfy each and 
every user or work in every possible configuration. Because 
of this, IMail has a number of configuration options. 
Instead of providing a massive list of all possible 
configuration options in a single location, separate option 
dialog boxes are distributed through the system where they 
are appropriate. Some of the options that may be changed 
frequently are available in more than one place. If they are 
labeled the same, they are in fact the same option. We hope 
you will find this helpful and not confusing.



Overall System Options

Primary system options are set by pressing the Option button 
in the main window of IMail. The following dialog box is 
displayed.



Split window height   The value specified here determines 
the number of lines in the mailbox window. Any value from 0 
to the number of lines on your screen is valid input, 
however you should try to limit the size of this window to 
less than half the screen.

Auto delete on transfer       When this option is checked, 
messages are automatically tagged for deletion when you 
transfer them to a different mailbox or file.

Audio on New Mail When this option is checked, IMail will 
sound the system exclamation sound when new mail arrives in 
the current mailbox. Note: You can change the system sound 
to a different sound through the Windows Control Panel, if 
you have a sound card installed.

Save POP password When this option is checked, your remote 
POP password is automatically saved. Note: This is saved in 
plain text in the IMail.INI file and this option should only 
be used when you are the only person who may possibly use 
the system (at home for example).

Check delay   This is the number of minutes between 
automatic checks for new mail. Note: IMail will let you set 
this to just about any value, but it is recommend that it be 
greater than 3 or problems may arise.

Timezone        The timezone is added to the end of the date 
of any messages that you send. Any text value or number is 
valid here. You should set this to something like EST, CST, 
MST, etc. or -500, -800, etc..

SMTP Server - Queue run time The ismtpd program should be 
running while you are running IMail or at anytime you want 
to be able to receive mail. (Maybe all the time, in which 
case you should put the ismtpd program in your Startup 
group.) The value that is specified here is how often ismtpd 
will attempt to deliver any messages that may be in the 
outbound queue. You should set this to a value between 20 
and 60. (every 20 to 60 minutes).

SMTP Server - Auto Start        If this option is set, 
ismtpd will be started automatically (if it is not already 
running) when you start IMail.

SMTP Server - Auto Stop on Exit If this option is set, 
ismtpd will be terminated automatically when you exit imail.

Word Wrap Some mailers do not automatically wrap lines of 
text during the creation of mail. If this option is turned 
on, IMail will wrap the text to fit in the current window. 
Note: This may cause the message to look improper.

View MIME Raw     This overrides IMail's automatic 
formatting and decoding of MIME messages. Normally, MIME 
content headers are not displayed. If this option is on, you 
will see the headers. Note: This is primarily included for 
problem troubleshooting and should normally be turned off. 
(not checked)

Auto save attachments     When you receive a message with a 
MIME attachment, it will be automatically saved to the 
ATTACTED directory under your user directory if this is 
enabled. Otherwise you are prompted for the name of the file 
to save it to.

Allow tabs in msg text      Allow the use of the TAB key 
during the creation of a mail message. If this is not 
enabled, the TAB key will move you from the body window to 
the send button.

Include signature file      Cause mail to be delivered with 
a standard signature file attached (see Create Message). The 
signature file may be edited from the Create Message 
window's options dialog.

SMTP send direct        Cause mail to be delivered directly 
to a recipient's workstation or host. If this is not 
enabled, the message is sent to a hub or gateway system for 
delivery when the message is not destined for the local 
system.

Auto wrap at    When creating message, you can just keep on 
typing and words will wrap for you. If you don't have auto 
wrap enabled and you do this, user that are using inferior 
mail interfaces will not be able to read your message as 
well.

Encode attached text    Enabling this option will cause 
attached text files to be encoded. One reason you may wish 
to do this is to keep your message from going across the 
network in plain text. This will not make it impossible for 
some to view the contents of the message, but it will make 
it difficult. If this option is on, the recipient MUST be 
using a MIME compliant mail system.

Verbose (debug) messages Verbose increases the number of 
messages that are written to the SYSLOG file. Debug 
increases the number of messages that are written to the log 
and to the status lines. The Debug option will also change 
the way some of the windows react and causes a debug window 
to start when IMail starts. You should leave the Verbose 
option on, if you would ever like to look at the SYSLOG file 
to verify delivery of a mail message. You should leave the 
Debug option off unless you have a specific problem that you 
are trying to catch or rectify.

Message Font    Selects the font that is used during the 
display and creation of mail messages. You can select from 4 
standard fonts to be used during the display and creation of 
messages as well as defining a custom font. When you change 
the font to Custom Font, a standard windows dialog box will 
pop up that will allow you to define the font you wish to 
use. (This is also directly available from the Files menu by 
selecting the Custom Font menu item.)



Message Reading Options

There are a series of options that have to do with reading a 
mail message and are provided to you in the options dialog 
box that is available by pressing the Options button while 
reading a message.



The left side of this dialog box is used to control what 
headers are visible when reading a message. The first of 
these (Show all) enables or disables the view of all headers 
with the body of the message. Each of the other options 
under Visible Headers control what headers are visible at 
the top of each message. This also impacts on what is 
printed, when you print a message.

The Message Font area gives you a choice of four system 
fonts to be used in the display of the message (these same 
fonts are used during the creation of a message. For most 
Internet mail, it is recommended that you use one of the two 
fixed fonts. A future version of IMail will probably allow 
you to specify any font and any size.

Word Wrap Some mailers do not automatically wrap lines of 
text during the creation of mail. If this option is turned 
on, IMail will wrap the text to fit in the current window. 
Note: This may cause the message to look improper.

View MIME Raw     This overrides IMail's automatic 
formatting and decoding of MIME messages. Normally, MIME 
content headers are not displayed. If this option is on, you 
will see the headers. Note: This is primarily included for 
problem troubleshooting and should normally be turned off. 
(not checked)

Auto save attachments to ./ATTACHED When you receive a 
message with a MIME attachment, it will be automatically 
saved to the ATTACTED directory under your user directory if 
this is enabled. Otherwise you are prompted for the name of 
the file to save it to.

Auto delete on transfer       When this option is checked, 
messages are automatically tagged for deletion when you 
transfer them to a different mailbox or file.



Message Creation Options

Selecting Options from the IMail1 Messages Creation window 
will let you set some options specific to creating messages 
and to the current message. This is where you can easily 
create, edit or otherwise change your signature file that is 
automatically appended to the end of each message that you 
send (if the option is turned on). You can also set the name 
of the mailbox where outbound messages are automatically 
saved if desired.



Registered  This option causes the message to be sent with a 
Registered header that the Army systems use to cause a 
return message to be sent when the user actually reads the 
message. Note that IMail will not automatically send a 
response to this header when reading mail by way of POP if 
the Host Delete Mail option is not checked.

Allow TAB in message text If this option is checked, you can 
actually insert a TAB in the message text, otherwise 
pressing a TAB while creating a message will move you to the 
Send button.

Auto Wrap at    This option allows you to automatically wrap 
the text that you entered at a specified location. This 
option affects the actual creation of the message as well as 
the delivery process. If this option is set less than the 
width of the edit window, the formatting window of the edit 
control is shrunk to meet the specified size. If it is 
greater than the size of the edit window, the display of the 
message during creation will not match the message that is 
mailed. You can leave this option disabled if you remember 
to press ENTER at the end of each line.

Auto BCC        If this option is checked, the value in the 
edit box to the right of the option is entered automatically 
into the BCC field of every message that you send. This 
allows you to store a copy of every mail message you send. 
As an example, you could enter "userid-SENT" in this field, 
and a copy of every message that you send would be stored in 
the "SENT" mailbox for the user "userid".

Encode Text Files This causes attached text files to be 
encoded with base64 on transmission. This can be used to 
improve the privacy of a transmitted file. (It is much more 
difficult for someone capturing traffic on a network to be 
able to see the contents of the file.) It will still be 
displayed in plain text for the receiving user.

Include Signature This option causes the content of the 
specified file to be included at the end of every message 
that you send. A signature file should have a blank first 
line and the second line should start with at least four 
hypens. (This is commonly used to delimit the signature from 
the body of a message by listservers.)

Signature File      This needs to be the full pathname to 
the file that contains your signature.



Technical Information


Programs and Files

The following files make up the executable and information 
files:

imail     This is the main user interface for reading mail 
and for interfacing with the IMail system.

imail1      This is the main user interface for creating 
mail and is normally invoked from a button or menu option in 
IMail.EXE.

ismtpd.exe  This is the Simple Mail Transfer Protocol Daemon 
(or server) that allows the system to receive unsolicitated 
electronic mail from remote systems.

ismtpd      This is the Simple Mail Transfer Protocol 
delivery program. This program is called by ismtpd to do the 
final delivery of any received messages and to perform queue 
runs to clear the outbound mail queues.

ipop3d      This is the Post Office Protocol version 3 
Daemon (or server). This program allows remote client 
systems (running IMail or a POP3 compliant client) to 
retrieve mail that is stored on the local server system.

iconf     This is the configuration program for the IMail 
system. This program also is used to register users and 
system aliases for the IMail system.



LOCKS

The entire packages of programs employs a built-in locking 
system to eliminate concurrency problems. Locks are created 
by modifying the first character of a file name and creating 
a special file in the same directory as the locked file. 
Files are only locked while critical reads or writes are 
being performed on the file. Old locks are removed if they 
are more than one hour old. This means a user may be locked 
out of accessing a file or a service for up to one hour as a 
result of a system crash during a critical time period. It 
is possible to manually remove a lock file if you are 
positive that no process is actually accessing that file. 
One reason for the long time period is the amount of time 
required to transmit a 2+ megabyte file across a 2400 baud 
slip connection (who would do that anyway???) with 
processing delays caused by the remote end.



IMAIL.EXE

imail includes a POP3 client that operates either in one of 
two modes. (1) It retrieves and deletes all mail from the 
remote host and closes the connection. (2) It retrieves 
headers only and then retrieves the body on demand and 
deletes messages on demand, leaving the connection open for 
the duration of the client session. imail will not retrieve 
a messages if there is not enough available disk space for 
that message.

imail limits are based on the physical memory available on a 
system, the number of processes running on the system and 
available disk space. Other limits in imail are caused by 
limitations in the Windows operating environment or the 
MS-DOS operating system. In most cases, innovative methods 
were used to extend these limitations. imail is tested with 
2700 messages in a mailbox with a size of 8 megabytes and at 
least one 2 megabyte message. Failures noticed in this 
environment include the failure of Windows to display more 
than 1550 lines of information in the message header listbox 
on a 16 Mb system or about 900 messages on a 8 Mb system 
(hence the ability to filter messages), the failure to 
display the 2 megabyte message when available memory was low 
due to other operating applicaitons and the failure to 
operate in a timely manner on reading/writing the mailbox.

imail is designed to be used by multiple people on a single 
system or by a single person on multiple systems. When imail 
is used as a POP3 client leaving mail on the host system, it 
does not read any local mailboxes or store any non-temporary 
information on the local system unless specifically told to 
do so. It is assumed that a user operating the system in 
this manner is using multiple systems, thus information on 
mail retained on the host, is intentionally not saved on the 
local system.

imail currently requires that a user be registered through 
ICONF in order to be able to use the system. It is possible 
to work around this, but you probably will have problems. 
Three things must be present for a user to be valid on the 
system. They have to be in the USERS.SYS file, have a 
directory under USERS and have a return mail address in 
IMail.INI.

One of the most likely problems to occur with imail is 
caused by some other process modifying a mailbox (.MBX) 
(doing something other than appending to the end of the 
mailbox) without removing the index (.IDX) file. If it is 
necessary to change the contents of a mailbox, delete the 
index.

imail can display multiple messages at the same time, 
however it is designed to give an appearance otherwise in 
order to discourage confusion to users. Power users should 
have no problem working with multiple windows. One potential 
problem with this is in holding a message window open and 
subsequently changing the mailbox that you are in. This has 
been tested and the results so far have been non-destructive 
even though error messages do appear.

imail currently understands all the defined Content-types 
from RFC 1521 and currently treats text as a US-ASCII 
charset and ignores external references. As per RFC 1521, 
imail treats all types except text as application/
octet-stream. imail currently understands the encoding 
method defined for MIME, base64. Base 64 encoded text is 
decoded to the display. Headers, etc. are treated in 
accordance with RFC 1521.



IMAIL1.EXE

imail1 is the primary user interface for creating mail 
messages and is also responsible for final delivery of the 
created message either to a local mailbox or to the remote 
host(s) by way of SMTP. (SMTP delivery is covered under 
ISMTP1.EXE as it is a subset of imail1. SMTP delivery will 
probably be moved out of this program in a future version.)

imail1 currently has a limitation of the body size of a 
created message (in the editor only) of 32K or less 
depending on available memory. Final message size (including 
attachments) is limited only by available disk space.

imail1 can currently create multipart MIME messages with 
Content-transfer-encoding of binary and base64 and 
Content-types of text, multipart and application.

imail1 supports the following command line options:

-f filename   Specify the name of a file to send without 
editing (provided a recipient is also specified on the 
command line).

-i filename   Specify the name of a file to send with 
editing.

-s "subject"    Specify a subject line.

-t "recipients[,recipients][,...]"  Specify primary 
recipients

-c "recipients[,recipients][,...]" Specify carbon copy 
recipients

-b "recipients[,recipients][,...]" Specify blind carbon copy 
recipients

-u user       Specify the registered user to send the 
message from.

-r  Add an Army "Registered:" header.



ISMTPD.EXE

ismtpd duplicates the functions contained within imail1 
without any user interface nor the ability to create a 
message. ismtpd is responsible for processing of messages 
left in the SPOOL directory by other processes and 
attempting final delivery both to local addresses as well as 
remote addresses by way of SMTP.

ismtpd will only deliver mail to addresses found in the 
USERS.SYS and ALIASES.SYS file. Aliases are expanded, though 
aliases that resolve to filenames are considered invalid and 
were/are the responsibility of the program that placed the 
message in the SPOOL directory. (ismtpd.exe will expand 
lists on receipt of the message and imail1 will expand lists 
on creation of a new message. Thus it is not possible to 
dump a message into the queue that references a list without 
doing the expansion yourself.)

ismtpd (and imail1) has a probable limitation of 100 
recipients in a message but is determined by length of the 
recipient addresses, number of duplicates, etc.. This is in 
accordance with RFC 821 section 4.5.3. (It has actually been 
tested with much more than this.) ismtpd does not parse any 
headers that are contained in the message itself and expects 
to find properly formatted information in the queue control 
file, thus there are no size restrictions on line lengths, 
etc. Whatever is passed to it is passed along to the final 
system with no input checking. Recipients are sorted by 
hostname and are sent as a single message to multiple 
recipients to a single system.

Processing rules for ismtpd (and imail1):

1.  Check to see if recipient host is the local host.

c.  If so, strip host name if present and add a host of 
LOCALHOST.

d.  If no host is specified and the user is listed in 
USERS.SYS, set the hostname to LOCALHOST.

e.  If the user is not listed in USERS.SYS, set the host to 
the "Default host name".

2.  Sort all recipients by hostname.

3.  Deliver to all local recipients.

4.  If any recipients left in the list, if the send direct 
option is enabled, for each of the hosts, connect to that 
host and deliver the mail to all recipients located on that 
host.

a.  If the delivery succeeds, remove from the list.

b.  If the connection fails, leave in the list.

5.  If any recipients left in the list, connect to the 
"Smart gateway" and deliver to all remaining addresses

a.  If the delivery succeeds, remove from the list.

b.  If the connection fails, leave it in the queue.

6.  Return any invalid recipients to sender.



ismtpd supports the following command line options:

ismtpd1       With no options, ismtpd1 attempts to deliver 
all messages in the mail queue.

ismtpd1 queue_filename Cause ismtpd1 to process the single 
messages pointed to by the queue_filename.

ismtpd1 -qr -x      Cause ismtpd1 to attempt to deliver all 
messages in the mail queue.



ISMTPD.EXE

ismtpd is intended to be run on any system that will 
directly receive mail by SMTP from remote hosts. It also 
performs the function of invoking ismtpd on a regular basis 
(based on the Queue Run Time option) if any messages are 
sitting in the outbound mail queue. On a POP3 client only 
station, it is possible to eliminate this program provided 
some other program takes responsibility to run ismtpd with a 
"-qr -x" option at some regular time interval.

ismtpd is an RFC 821 compliant SMTP server and fully 
implements the HELO, MAIL, RCPT, DATA, RSET, NOOP and QUIT 
commands as specified in 4.5.1. Additionally, it implements 
the VRFY, EXPN, HELP, SOML, SAML and SEND with modified 
action but in a manner that is transparent to the client. It 
also understands the TURN commands and returns a valid 
denial code. Size restrictions are undetermined due to 
method of implementation but do exceed the size requirements 
of 4.5.3.

ismtpd accepts and handles up to 20 concurrent connections 
from remote hosts as coded for use on Windows 3.x running on 
MS-DOS.



IPOP3D.EXE

ipop3d is intended to be run on any system that will 
directly receive mail by SMTP from remote hosts and will 
redistribute that mail by the POP3 protocol to remote 
clients. ipop3d is not intended to be accessed by a POP3 
client running on the same system (this will work with some 
level of success if the client is not imail). This program 
may be eliminated if this functionality is not required.

ipop3d is an RFC 1460 compliant POP3 server and fully 
implements the USER, PASS, QUIT, STAT, LIST [msg], RETR msg, 
DELE msg, NOOP, LAST, RSET and TOP commands. It also 
supports the XTND XMIT command to receive mail for 
redelivery by the ismtpd program. It does not implement the 
ATOP from RFC 1460 in this release.

ipop3d accepts and handles up to 20 concurrent connections 
from remote hosts as coded for use on Windows 3.x running on 
MS-DOS.

ipop3d deletes the .IDX file, if it exists, for a mailbox 
upon startup. This is because ipop3d adds Status: headers to 
the mailbox when it is rewritten. This means index 
information in the mailbox is incorrect even if no messages 
were deleted. If it did not do this, subsequent accesses by 
imail on the same system would result in corrupted 
mailboxes.



Windows NT Notes

The entire set of programs have been tested and used on the 
Windows NT system and work using the 16 bit subsystem. A 
Windows NT specific version will be produced. In order for 
things to work reasonably well, you must insure that you 
have gone into the control panel to the system application 
and set preemptive multitasking to 50/50.
