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" 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 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.