The Internet would be useful as simply a data-sharing devicebeing able to FTP to another site and grab a program is quite useful, as is being able to log on to another machine using telnet. But there's a special type of data that comprises most of
the appeal of the Internetperson-to-person communication. You can talk with people around the world, a message at a time or even in real-time.
This chapter covers the following topics regarding communications:
Electronic mail enables you to exchange messages with anyone who is a member of any of the major information networks. It's faster and cheaper than snail-mail (the Post Office), and it's often cheaper and more convenient than a phone call.
Whereas e-mail is person-to-person messaging, USENET is person-to-millions-of-persons messaging on literally thousands of different topics. This is more information per day than any person can read completely, even if all they did was read it.
Simple person-to-person chat.
Internet Relay Chat is a multiple-person discussion forum, much like a CB radio channel. It is reportedly more addictive than drugs.
E-mail is one of the most important applications of the Internet as far as companies, schools, and government agencies are concerned. Since these are the entities that heavily influence Internet development by deciding to hook up and offer Internet to
their members, it's often considered one of the most important (if not the most important) service the Internet offers. For major online services such as CompuServe, GEnie, or SprintMail, which offer their users access to the Internet for mailing purposes,
it's the only Internet service.
The basic principle behind e-mail is simple. You write a message using your computer, send it to another computer user, and it appears on that user's computer, where the user reads it. You probably know from experience that composing the letter is not a
major technical chore, nor is reading it. The first problem is the same one you encounter with all computer dataorganizing your data, in this case e-mail. The second problem is how to format the informationhow do you send a program by mail? The
third problem, which is far larger, is exactly how you get your message from your machine in Walla Walla, Washington, United States, to your friend's computer in Reykjavik, Iceland. And, since he's probably sharing his Internet computer with other people,
how you get it to his account.
The Internet proper is composed of computers tied together at all times by direct links. If your computer is "on the Internet" and my computer is "on the Internet," our machines should be able to exchange data without any dialing
If you think about messages, however, you'll see that individual messages are transferable between machines that connect only occasionally. Each machine can save up messages that need to be sent, then exchange messages when they connect. Bulletin board
systems (BBSes) do this routinely. This concept is exploited by many systems that offer "Internet Mail"the systems can exchange e-mail with other Internet sites even though they are not part of the Internet itself. They do this by
occasionally connecting to a system that is really on the Internet and exchanging mail. This is an important concept.
A computer system does not actually have to be part of the Internet to offer Internet Mail access. Since true Internet access is expensive, if you need only e-mail access you will be able to obtain it much more cheaply than true Internet access. There
is probably at least one BBS in your area that offers Internet Mail access cheaply, sometimes even for free.
Mail will be slower on such systems. Since they only connect to a true Internet machine occasionally (maybe only once a day), all your outgoing mail and any incoming mail for you is held until this occurs. This introduces a delay of several hours. Since
the delivery time for e-mail from one Internet machine to another is often measured in minutes, this is a substantial difference. If you want more, you pay more.
As far as Internet is concerned, e-mail is plain text, nothing more: This means all letters a through z, numbers 0 through 9, and various punctuation. You can't just send a program using e-mail. Various computers along the way will almost certainly
eliminate over half of the message, if it gets transferred at all.
This imposes certain limitationsif you want to do anything special, such as carry other information about the message other than just the basic content, you have to do it within this constraint.
A message from you to another person will probably travel through several machines. Typically, mail from your computer goes to the mail computer for your site, then to your service provider's computer, then to a large "backbone" site. From
there it goes to another backbone site, to the recipient's service provider, to the recipient's site, then to the recipient's computer. Obviously, you need some way of addressing mail to a specific personjust sending mail to "John Smith"
isn't going to work.
You need some delivery information to go along with the message, but you don't want to modify the vital contents of the message. If you're sending the latest Lorena Bobbitt joke to a friend, you don't want a piece of it chopped off (or otherwise
On the Macintosh, a similar problem is solved by splitting a file into its Resource and Data forks. OS/2 uses extended attributes. You can't do this with the Internet, because e-mail is text only, by definition. You get around this problem by defining
every piece of e-mail to consist of two basic piecesa header and a body.
Internet mail consists of a header and a body. The header comes first, and contains all the information about the message, such as who it came from and who it's for. The end of the header is given by a completely blank linenot even any spaces. The
body of the message, which consists of the actual message content, follows.
Actually, a message can consist of a header only. This isn't usual, but it's common enough, usually due to user error, that you shouldn't be surprised to see it.
How do you get mail to a person on another computer, considering that the mail probably has to pass through several computers?
One way is to list the computers the mail should pass through with the recipient. This is done on the Internet by an almost obsolete format known as UUCP bang-path:
It's called a bang-path because of the exclamation points: bang! bang! bang! Computer people, UNIX types especially, love short names. Exclamation is four syllables, and bang is only one. Plus, it's easier to spell. Thus, a mail path delimited by bangs
is a bang-path.
This indicates that you want the mail to pass successively through the computers known as comp01, comp02, and comp03. Once on comp03 it should go to user username. This type of addressing is simple if you know exactly where your mail is going, and it
makes it easy for systems along the way to figure out where to send your mail next; but it is a crawling horror otherwise. Imagine if you had to address your snail-mail (post office) mail like thisfrom my mailbox to my local post office, then the
central office, then the regional office, then another regional office, then the central office, then the local office, then the recipient's mailbox. What if one of the offices along the way changes? Oh yes, the names of the offices can each be only six
letters long (a UUCP host name limitation).
The post office uses a different concepteach person is identified by country, state, city, and address. A parallel system for the post office (the ZIP code) makes sorting faster for humans, and it guards against sloppy writing causing too many
problems. To get a message to someone from anywhere in the world, you just identify them with this information. You don't need to care about the path it takes to get there.
The more standard Internet version of this is domain name addressing, often just called Internet addressing. It looks like this:
Both pieces are extensible, although localname is usually just your user ID. The domain is read from right to left and specifies a series of progressively smaller logical domains (such as country, state, city, then street address). Here's an example:
The far right of the domain, com, indicates that this is a commercial site. The period separates it from the next item in the domain. hugeco is the name of the entity, in this case HugeCo, Ltd. sales specifies a specific department or site within the
entity. Finally, wubba is the specific computer within the site.
This is known as a "fully-qualified domain name"the address includes complete information on how to reach good old Joe Faceless, right down to the specific machine. Usually you don't have to be this specific. If there's only one
jfaceless account within the company, for instance, HugeCo's mail computers should be smart enough to figure out how to route incoming mail to him. In this case, the Internet address he would proudly put on all his business cards would be this:
Obviously, if email@example.com sends mail to firstname.lastname@example.org, someone needs to figure out how to get it to himthis is the province of domain name servers. Let these computers do the work, and you usually don't have to worry about it.
By Internet convention, capitalization in the domain name is ignored. So you could use HugeCo.Com, HUGECO.COM, or hugeco.com. They're all the same. The same thing should happen with the user name as well, but this is not required, and if the site is
using poor software it may consider JFaceless and jfaceless to be different users. It's safest always to preserve the case.
The far-right component of the domain is known as the top-level domain name. The most common in the United States are edu (educational sites), com (commercial sites), gov (government sites), and mil (military sites). For other countries, the top-level
domain is the two-letter ISO country code. For example, email@example.com is a user in Germany. This isn't foolproof, as there are sites in Canada that don't bother with using the .ca code for Canada.
Sometimes you'll see something like this:
This indicates that once the mail gets to the site ancient.edu some other form of addressing takes over. You usually see this when dealing with an ancient system, or when transferring mail with another network.
As explained earlier, the header of a message contains all the information about the message. This generally includes who the message is from, who the message is going to, the date the message was sent, a message subject, and information about computers
the message has passed through. These are the usual items, and there can be more. It's not unusual for the header of the message to be larger than the actual contents of the message!
A header item looks like this:
keyword identifies the specific type of information this header item contains. It must start at the beginning of the line. value contains the actual value of this item. It can stretch over multiple linesthis is indicated by starting following
lines with white space (a tab or space).
Here's a common header item:
This identifies that the message is from firstname.lastname@example.org. Generally, the item is referred to by keyword, so this would be legitimately referred to as the From header of the message. This is opposed to just the header, which consists of all the
header items in the message.
Here's an example of a header including a multiline header item:
From: email@example.com Subject: Note how this subject is split and the subsequent lines are started with spaces, as opposed to the keywords, which are flush left To: firstname.lastname@example.org
Technically, the only header item you need to send mail to someone is the To header:
Normally, however, you will be asked for a Subject header when you compose the message. The recipient can view just the subject for a quick idea of what the message is about.
In addition, your mail program will probably add a Date header giving the time the message was sent, and a From header indicating your address. Here's a typical message just before it's sent:
From: email@example.com To: firstname.lastname@example.org Date: Wed, 13 Sep 1312 13:43:12 -0300 (PST) Subject: Talking Cerebus is sick of your ceaseless talking. The next time he sees you, Cerebus will use his sword, then talk.
As your message travels from machine to machine, each machine along the way will add some routing information.
The best way to learn about common headers you will see on messages you receive is to examine an actual message. Most of this is an actual header from a message received by me, with names and addresses tampered with sufficiently to prevent the actual
sender from getting strange e-mail.
From email@example.com Wed Feb 1 08:15:01 1993 Flags: 000000000015 Received: from phones.com (phones.com [184.108.40.206]) by happy.phones.com (8.6.5/QC-BSD-2.1) via ESMTP; id IAA13973 Wed, 1 Feb 1993 08:14:59 -0800 for <firstname.lastname@example.org> Received: from linc.cis.void.edu (root@LINC.CIS.VOID.EDU [220.127.116.11]) by phones.com (8.6.5/QC-main-2.3) via ESMTP; id IAA14773 Wed, 1 Feb 1993 08:14:56 -0800 for <email@example.com> Received: from eniac.seas.void.edu (nihil@ENIAC.SEAS.VOID.EDU [18.104.22.168]) by linc.cis.void.edu (8.6.5/VOID 1.4) with ESMTP id LAA17163 for <firstname.lastname@example.org> Wed, 1 Feb 1993 11:14:45 -0500 Received: from localhost by eniac.seas.void.edu id LAA24236; Wed, 1 Feb 1993 11:14:44 -0500 From: email@example.com (Ex Nihilo Nihil Fit) Sender: firstname.lastname@example.org Reply-To: email@example.com,firstname.lastname@example.org Cc: group-stuff@uunet.UU.NET Cc: email@example.com Message-Id: <199302011614.LAA24236@eniac.seas.void.edu> Subject: Re: Apple IIe/IIgs Software and books for SALE... To: firstname.lastname@example.org (Ron Dippold) Date: Wed, 1 Feb 93 11:14:44 EST In-Reply-To: <CMM.email@example.com>; from "Ron Dippold" at Feb 1, 93 1:00 am X-Mailer: ELM [version 2.3 PL11-void1.13] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 10234
I told you headers could be large_normally they're not this big, but this is a good example of all the major header items you need to know.
Here's the first line:
From firstname.lastname@example.org Wed Feb 1 08:15:01 1993
This line is actually added by my local mail program. It is used both as a quick message summary (who and when) and as a way to separate messages. A typical mail file is just a big text file, so you need some way to tell the start of one message from
the end of the next. For most places, this is the text From at the start of a line. This also means that if you try to place a From at the start of a line of text in your actual message, your mail program should place a > or some other character before
it so that it doesn't falsely indicate the start of a new message.
Again, this is used by the local mail program. Each message can have several different statuses, such as deleted, unread, and flagged for further attention. This varies from program to program.
Received: from phones.com (phones.com [22.214.171.124]) by happy.phones.com (8.6.5/QC-BSD-2.1) via ESMTP; id IAA13973 Wed, 1 Feb 1993 08:14:59 -0800 for <email@example.com>
Remember that each machine that receives mail adds its own Received header to the top of the message. This is the first such header in the message, so it must be the last mail transfer. The machine happy.phones.com (where my mail is located) received
the message from phones.com (our company gateway) on February 1, 1993. The transfer was done using sendmail 8.6.5 (you can't know from this header that it was sendmail) and the protocol used was ESMTP. The intended recipient is listed lastthis can
change as the message goes through gateways, so it's helpful for tracking mail problems.
Received: from linc.cis.void.edu (root@LINC.CIS.VOID.EDU [126.96.36.199]) by phones.com (8.6.5/QC-main-2.3) via ESMTP; id IAA14773 Wed, 1 Feb 1993 08:14:56 -0800 for <firstname.lastname@example.org>
Here's the mail transfer that got the message from void.edu to my site. It's a direct connection with no intermediaries.
Received: from eniac.seas.void.edu (nihil@ENIAC.SEAS.VOID.EDU [188.8.131.52]) by linc.cis.void.edu (8.6.5/VOID 1.4) with ESMTP id LAA17163 for <email@example.com> Wed, 1 Feb 1993 11:14:45 -0500
Here the mail machine (linc.cis) at void.edu received the mail from another machine at void.edu (eniac.seas).
Received: from localhost by eniac.seas.void.edu id LAA24236; Wed, 1 Feb 1993 11:14:44 -0500
Finally, here's the original sending of the message. One interesting piece of information that can be gleaned from this whole exchange is how long it took the mail to get from the sender to me. The message was sent at 11:14:44 -0500 and was received at
08:14:59 -0800 on the same day. The -0500 and -0800 show the time zone differences. To get equivalent times for both messages, you add 5 hours to the time of the sending and add 8 hours to the time of receipt, to get 16:14:44 and 16:14:59, respectively.
The message arrived in 15 seconds!
From: firstname.lastname@example.org (Ex Nihilo Nihil Fit)
This is who sent me the message. The portion in parentheses is a comment. It usually contains the person's name, but in this case is a saying in Latin.
Sender is the "authenticated identity" of the person who sent the message. This is where the sending computer tells you that, as nearly as it can determine, this is the account that actually sent the message, regardless of what the From header
says. This is useful if one person is authorized to send mail for another, such as a secretary, or if one member of a group is sending a message for the whole group. If the Sender header is the same as the From header, it doesn't need to be added. In this
case, Nihil sent mail from a machine within his organization different from the one given in his address. This isn't a big deal. If the From and Sender headers are radically different, however, the mail may be a forgery.
The Reply-To header specifies who your reply should go to if you respond. Your mail software should be smart enough to do this automatically. There are usually two reasons for using a Reply-To header. The first is if the address given in the From header
is broken and you can't fix itusually because your mail administrator doesn't know what he or she is doing or doesn't care. The second is if your primary address is somewhat unreliable. Nihil has another mail account at freenet.comif for some
reason void.edu goes offline, he can still get much of his mail at his freenet account.
Cc: group-stuff@zznet.ZZ.NET Cc: email@example.com
The message was also sent to group-stuff@zznet.ZZ.NET and firstname.lastname@example.org. You can choose whether to include them in your reply. This also could have been done in a single header statement:
Either form is acceptable. Headers such as From or Sender, however, should appear only once in the entire header.
It is very helpful when trying to track a message for debugging, cancellation, or other purposes if every message has a unique identification. The method of generating this unique ID varies from site to site. There should never be another message with
this specific ID generated by any machine anywhere on the network. Using @eniac.seas.void.edu makes it a local problem only.
Subject: Re: Apple IIe/IIgs Software and books for SALE...
This is the subject of the message. My mail program shows me a one-line summary of each message, including the From, Date, and Subject headers.
To: email@example.com (Ron Dippold)
This is who the message was sent to (me, in this case). Sometimes your local computer will strip off the @phones.com part.
Date: Wed, 1 Feb 93 11:14:44 EST
This is the date the mail was originally sent. EST is Eastern Standard Timeanother way of giving the time zone.
In-Reply-To: <CMM.firstname.lastname@example.org>; from "Ron Dippold" at Feb 1, 93 1:00 am
This message is a reply to a message that I sent with the message ID given above.
X-Mailer: ELM [version 2.3 PL11-void1.13]
The sender used the Elm Mail System to send this piece of mail. This can be useful in debugging, but usually it's a bit of self-promotion by the mail program.
Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit
This deals with something that will be discussed later, MIME message format. Briefly, this says that the message contains only 7-bit text, which is nothing out of the ordinary.
The length of the body of the message (not shown here) is 10,234 characters.
There are some other header items that might be occasionally useful for you to know:
Bcc is blind carbon copy. This is like the Cc header, except that those who are sent the message because their address appears in the Cc or From headers don't see that the message was sent to those specified in the Bcc header. Use this to send a copy of
a message to someone without letting the others know you're sending it.
Keywords: keyword, keyword
These are keywords relating to the message. This is mostly a comment fieldsome mail programs will let you search on keyword.
This allows you to make comments on the message without actually including them in the body of the message.
Encrypted: software keyhelp
This indicates that the message body is encrypted with encryption software, and the optional keyhelp helps with selecting the key to decode with. Note that the header itself cannot be encrypted since it contains vital routing information.
Dates used in headers look like this:
Wed, 1 Feb 93 11:44 -500
The day of week (Wed) is optional. The time is given as 24 hour format (00:0023:59) local time. The last field is the time zone in one of several formats.
UT or GMT Universal/Greenwich Mean Time EST or EDT Eastern time zone CST or CDT Central time zone MST or MDT Mountain time zone PST or PDT Pacific time zone -HHMM HH hours and MM minutes earlier than UT +HHMM HH hours and MM minutes later than UT
If EST is Eastern Standards time and EDT is Eastern Daylight Time, you can figure out the abbreviations for the Central, Mountain, and Pacific time zones. The -HHMM format is probably the least confusing_-0500 makes it much easier to translate the time
to local time than does EST.
You may also see the following military codes used:
Z Universal Time A UT - 1 hour M UT - 12 hours N UT + 1 hour Y UT + 12 hours
If all this header information is giving you information overload, don't sweat it. The really important fields are From, To, Date, and Subject, and it's pretty obvious what those mean. The other information is there in case you need it.
There are actually several components involved in sending mail. First there's the hardware: Mail has to be physically transferred somehow, either along a dedicated phone line, via satellite, or over a modem. Then there's the link layer: The systems on
either end of the hardware connection have to agree on how to communicate with each other. Next is the transport agent: Mail transport agents (MTAs) worry about all the complexities involved in routing mail and sending mail from one site to another.
Finally, there's the user agent: The mail user agent (MUA) is the software you use to read all your mail, manipulate it, and send your mail. This is what people usually mean when they talk about a "mail program."
The first three layers aren't usually your concern, unless the MTA places some special constraints on what you can send. You're concerned with the user agents.
There are many mail programs you can use. This chapter does not cover any one program, but it covers the elements that are common to them all.
Normally, you have a mail account on whatever computer handles your mail. Often, you can do other things with your account besides access your mail, but that's not important for now. All your new mail, known as incoming mail, is kept in what is usually
called a mail spool file. It's quite common for your computer to occasionally look at the spool file and notify you if you have new mail. This is your clue to run your mail program.
Your mail program then grabs all the incoming mail and displays it for your edification. If you don't delete the mail, it is placed in your mailbox file. This is not the same as your incoming mail filethe mailbox file holds all your old mail. Many
users eventually outgrow the single mailbox and have several for different subjects, but there is almost always a default mailbox used whenever you run your mail program, and this is what is referred to as "your mailbox."
If you send mail to someone else, it is sent directly to your site's mail computer, which can do what it pleases with the mailit either sends it on immediately or saves the mail up to save in batches.
As mentioned earlier, there are many mail programs, each with their own quirks. But they try to accomplish the same task and tend to present the messages in a similar format. Learning about one mail program will give you the concepts needed to use
almost any program in existence.
Almost every program in existence summarizes your messages like this:
FA 1) 14-Dec Tanya Harding Where can I get a lead pipe? (2457 chars) F 2) 11-Jan Ken Bibb rdippold.ps.gz (1/1) (17464 chars) F 4) 8-Feb Neil Gaiman Greek Mythology (2576 chars) F D 5) 10-Feb clinton@whiteho This is a stickup (13786 chars) FA 6) 15-Feb Robbin Hughes Re: REX test driver (1451 chars) U 7) 16-Feb The King Re: Chili Donuts (2653 chars)
There's one line per message. Again, the information for each message won't always be presented in exactly the same format, but the contents should be similar. From left to right for this mail program (named mm90). These lines give the following
All mail programs have a "read new mail" command. Usually, you use just r or press Enter. This shows you your new messages one at a time. When you're reading each message you have several options available, such as replying or deleting the
The same functions that are available when you're reading a message are usually available when you're not reading any particular message, and can apply to a single old message or to a group of them. As an example, when you're reading a message you can
tell the mail program to delete the message. When you're not reading any messages you should be able to tell the mail program "Delete message number 4" or even "Delete messages 4 through 6."
Messages are usually given by number, but if you're using a mail program that uses a mouse you may be able to select messages by clicking on them.
Here's the standard list of mail functions you should learn how to do in your program:
Since how you handle your mail involves a lot of personal preference, almost all mail programs have many options that can be set. So that you don't have to set these every time you run your mail program, most mail programs have some sort of
configuration file that is read every time the program starts.
You should definitely look into how to set this up for your mail programwhile doing so you will often find many options you didn't even know about. For instance, many programs will let you set aliases; for example, you can use just bill instead of
email@example.com. The mail program turns the alias into the full name.
There are dozens of mail programs out there, and they can't all be covered here. Instead, this chapter touches on a few common ones.
Most UNIX boxes come with a simple program known just as mail, or as mailx. This is some variation on the mail program from Berkeley UNIX, so it's sometimes called Berkeley Mail. This program is minimal in functionality and presentation, but it works,
and many people still use it. If you like mail I would recommend that you upgrade to mm90, which is discussed in the section, "mm90 (Mail Manager 0.90)."
mail has the capability of being used in a noninteractive mode. You can send a file to someone in this way:
mail -s "subject" recipient < messagefile
Again, on some systems you need to use mailx. mail. recipient is who to send it to, subject is some message subject, and messagefile is the name of the file to send. You also can send the output of a program in a similar fashion:
program commands | mail -s "subject" recipient
You could instead save the output of the program to a file first, but why introduce an additional step if you don't need to?
If you're the type of person who likes full-screen, menu-driven (and other hyphenated adjectives) interfaces, Elm might be up your alley. It was created as an easy-to-use UNIX mail program, but actually has a fair amount of configurability and power.
The support programs that come with it might be worth getting on their own. And if you like printed manuals, it comes with over a hundred pages of documentation in PostScript format.
The Elm system is probably not standard on your system, so you'll have to get it yourself or beg your sysadmin for it. You can anonymous ftp it from ftp.uu.net under /networking/mail/elm, or from wuarchive.wustl.edu under /mirrors/elm. The packed source
code is about a megabyte. You'll need to compile it and answer a few system configuration questions.
Messages are displayed in a format close to the "standard" one-message-per-line format described earlier, but now you can use your arrow keys to scroll about the messages and just press a key to inflict your wishes on the current message. The
online help isn't badjust press ? at any time.
There's even a USENET group for Elm: comp.mail.elm.
If Elm is still too complex for you, Pine is next on the list. Pine stands for Pine is not Elm (trust me, this is considered prime mail humor), and it's somewhat similar to Elm_but different.
It uses the same one-message-per-line, scroll-through-them-and-use-hotkeys-to-act-on-them principles as Elm, but Pine makes things a little easier. The number of features is less overwhelming, and there's a concerted effort to keep the same keys
performing the same functions from screen to screen. Several items (such as address books) you'll have to "suffer" through with Elm rate their own full-screen editors in Pine. Pine even comes with its own text editor, Pico, which can be used as a
general text editor. For the faint of heart, it's certainly an improvement over emacs or vi.
And there's good news on the installation, if you're lucky. You can anonymous ftp to ftp.cac.washington.edu and look in the /mail directory. Precompiled versions for AIX3.2, HP/UX 9.01, Linux, NeXTstep, Solaris 2.2 (SPARC), and SunOS 4.1.3 (SPARC) are
available in the UNIX-BINARIES subdirectory, if you're lucky enough to be using one of these. If you need to compile your own version, get pine.tar.Z and warm up your C compiler.
Future versions of Pine will include built-in configuration, but if you want to set some Pine options, run it once, then use a text editor to edit the file .pinerc in your home directory. The configuration items are explained fairly well. There's not a
whole lot to do here, but make sure you set personal-name, smtp-server (if you're using SMTP), and inbox-path (usually /usr/spool/mail/yourid).
The "Common Mail Programs" section has generally assumed that you will run your mail program on the computer that contains your Internet mail. In many cases, however, you will wish to do all your mail reading on your personal computer, both
because you may be charged for all the time you are logged onto your mail account, and because the programs on Macs and PCs are much friendlier than those on many UNIX systems.
What you want is a program that will call the system that receives your mail (or that will connect to it by whatever means necessary), grab all your new mail, and disconnect. Then you can read your mail at your leisure and enter new messages. If there
are any new messages, the program should call your mail system and give it the new messages for delivery. As you have probably guessed, these programs exist and are known as mail clients.
The big difference between this approach and the "read your mail on your Internet computer" approach is that your mailbox is kept on your personal computer instead of on the Internet computer.
Obviously, there has to be a way for your mail client to talk to your Internet computer and transfer messages. There are several standards for this.
Simple Mail Transfer Protocol (SMTP), or some variation of it (such as Extended SMTP) is used by computers on the Internet which handle mail to transfer messages from one machine to another. It's a one-way protocolthe SMTP client contacts the SMTP
server and gives it a mail message.
Most mail client programs support SMTP for sending outgoing mail, simply because it's very easy to implement. Few mail clients support SMTP for incoming mail, because normally your mail computer can't contact your personal computer at will to give it
mail. It's possible if your personal computer happens to be permanently networked to the mail computer via EtherNet, for instance, or if your mail computer knows how to use a modem to call your personal computer, but in most cases this isn't done.
The standard protocol used by most mail clients to retrieve mail from a remote system is one of the post office protocols, either POP2 or usually its successor POP3. These protocols enable your mail client to grab new messages, delete messages, and do
other things necessary for reading your incoming mail. POP only requires a rather "stupid" mail server in the sense that your mail client needs to have most of the intelligence needed for managing mail. It's a very simple protocol, and is offered
by most mail clients.
POP3 is somewhat insecure in that your mail client needs to send your account name and password every time it calls. The more you do this, the greater the chance that someone with a network snooper might get both. (I'm not trying to scare you, but it's
possible.) An extension known as APOP uses a secure algorithm known as MD5 to encrypt your password for each session.
Finally, note that standard POP3 has no way to send mail back to the mail server. There is an optional extension to POP3 known as XTND XMIT that allows this, but both the client and the server have to support it. Generally, a mail client uses SMTP to
send messages and POP3 to retrieve them.
Here are some useful features to look for when shopping for a mail client:
Again, there are dozens of mail clients out there. If your organization has standardized on one of the big ones, such as cc:Mail, Microsoft Mail, Lotus Notes, or BeyondMail, you're already familiar with one. These clients are a bit more
"homegrown" on the Internet and have at least a demo version you can try first, before you buy the real (and expensive) program.
Actually, this is a bit more than a mail clientit's an entire TCP/IP (plus SLIP and PPP) suite for DOS. All its components are in one package, which allows multiple-window, simultaneous sessions. You can have ftp in one window, telnet in another,
and run mail or gopher in another. This isn't a big deal under UNIX, OS/2, or Windows, but it's pretty nice for a single-tasking system such as DOS. I'm including it here because its low price makes it worth looking at if you're searching for a mailer
under DOS. This is what I use when I need TCP/IP under DOS.
You can anonymous ftp a demo version of CommSet from ftp.cybercon.nb.ca, or you can send mail to firstname.lastname@example.org requesting information. The final price (before educational discount) should be around $99.
Disclaimer: I work for QUALCOMMin a different department, but I thought you should know_
Eudora is a full-featured mail client for Macs or PCs running Windows. It comes in two sub-flavors: Version 1 of Eudora is free, and Version 2 and above are commercial. Obviously, Version 2 has nifty features not available in 1, but 1 is pretty powerful
Eudora is fully windows-, menu-, and icon-driven, so you are bound to like this program. Eudora pretty much has it allfeatures galore. The only thing I could ask for is a native OS/2 version_
To test the free versions of Eudora, anonymous ftp to ftp.qualcomm.com. The PC version is under /pceudora/windows (get all the files). The Mac version is under /mac/eudora. For a Mac you need to decide which version you want to tryif you have
System 6, get 1.3. Otherwise grab 1.4 (or higher).
Single-copy pricing is about $65, with an educational discount available. Send e-mail to email@example.com for more info, or call 1-800-2-Eudora.
Pegasus Mail runs on Novell and supports HMS and SMTP. It has DOS, Windows, and Macintosh versions, which gives you a wide range of platforms with a single program. There are a number of utilities available for use with it, such as Mercury, which is an
SMTP gateway for Novell. It's fairly flexible in allowing you to set up user-defined mail gateways and has a large features list.
It's got its own text editor, which is integrated with the rest of the program, although if you're attached to your text editor (I couldn't give up QEdit), you can define your own external editor.
To find all the versions and add-on utilities, you can anonymous ftp to risc.ua.edu, under /pub/network/pegasus. The software is free! If you want manuals, it'll cost you $150 for a five-copy license. That's only $30 apiece. You can contact David Harris
by fax in New Zealand at (+64) 3 453-6612, or send inquiries to firstname.lastname@example.org.
Didn't we just cover this? Yep_this is a DOS version of the UNIX Pine mail program. You can have the same mail interface on your UNIX and DOS platforms. Pine's big limitation is that it doesn't support POP3it only supports IMAP2 and SMTP. For more
information on Pine, see the section, "Common Mail Programs," where the UNIX version is discussed.
To get it, anonymous ftp to ftp.cac.washington.edu and look in the /mail/PC-PINE directory. Grab the file that's appropriate for your networking software: FTP's PC/TCP (pcpine_f.zip), the generic packet driver using built-in Waterloo TCP/IP
(pcpine_p.zip), Novell's LANWorkPlace (pcpine_n.zip), or Sun's PC/NFS (pcpine_s.zip). If you don't have one of these, try the Waterloo TCP/IP versionit should only require the basic packet drivers.
ECSMail is impressive for its wide range of support. It includes not only a mail client, but mail transport and handling services, so you can build a complete mail system. All the components run under UNIX, OS/2, OpenVMS, or Windows NT, and mail clients
are available for MS-DOS, Windows, and the Mac (System 7). We're talking enterprise-wide solution here, if you're into that level of standardization.
Contact ECS (in Canada) by calling 1-403-420-8081, or send mail to ECS Sales at email@example.com.
This isn't all that's available for mail, by a long shot. Read the USENET group comp.mail.misc for more information.
Internet Mail is more than just Internet. Because Internet is everywhere, it interests all the right people. In this case, the right people are all the other services that offer electronic mail and who want a piece of the action.
In theory, the Internet is a competitor with all the existing services such as AT&T Mail, CompuServe, and the rest. In practice, it's a neutral competitorit's not some guided, malevolent entity that is trying to do away with any of the other
services. Rather, it competes just by its existence; it offers more information and more connectivity than most of the services can ever hope to offer. Smart information services finally realized that this could be put to their advantageanyone who
cares to can join the Internet, and a service that joins the Internet has advantages over its competitors.
One huge advantage is connectivity. As soon as a mail service adds a computer (known as a gateway) that can transfer from its system to the Internet and vice versa, its users can exchange mail with anyone on the service or with anyone on the Internet.
That's a lot of people. So a lot of services are now offering some sort of mail gateway. Even Prodigy, which was somewhat late to grasp the possibilities, has one now.
Instead of GEnie needing to install a special gateway to talk to Prodigy, and one to CompuServe, and one to SprintMail, and one to BubbaNet, it can set up and maintain just one gateway to the Internet through which everything flows. Given the glacial
speed with which most of the online services implement upgrades like this, requiring only a single gateway is a good thing.
So now anyone can send e-mail anywhere! All is fluffy and bright and beautiful, right? Well, not quite_
It turns out that the services that connect to the Internet keep their same old account names and horrible mail systems. CompuServe's octal account addresses are as much of an anachronism as punch cards, but because of the company's current investment,
they're not going to change it. (The Cubs will win the World Series first.) And you can't just send a mail message to a CompuServe account using an Internet-style address. A CompuServe ID looks something like this:
In Internet addressing, a comma separates members of a list so you can't use the comma in the Compuserve address. There's a way around that (use a period instead of a comma) but you have to know that in advance. Someone trying to send mail to a system
has to deal with those quirks. Hence this section, which details the translation that has to be done between the major networks.
Again, an Internet e-mail address looks something like this:
Any address to a mail gateway is going to be some variation (minor or major) on this theme.
There are a few "gotchas" you should know about before starting on your gateway quest. With luck, they'll never affect you, but the pessimistic might claim that Murphy's Law almost guarantees they will at some time.
Some of these services charge money for every mail message that gets sent or is received. And with their pricing plans in such flux (a year is the normal lifespan), it's impossible to keep track of more than a few at a time. However, since the Internet
has no billing mechanisms and the commercial systems do, the users of the commercial systems end up paying for the mail. So be careful when sending mail to these poor slobs. If they ask you for it that's one thing, but unsolicited mail is another.
Furthermore, sending large files across any of the gateways is usually frowned upon.
By custom, Internet addresses are case insensitive. That is, mail to firstname.lastname@example.org is the same as mail to BOZO@CLOWN.EDU or BozO@CloWN.EdU. Not all of the information services are so enlightened. Wherever possible, keep upper- and lowercase exactly as
you are given them by the recipient, just in case. Chances are it doesn't matter, but why take those chances?
The Internet uses what is formally known as RFC-822 addressing. Many large commercial services specializing in electronic mail use something known as an X.400 gateway to talk to the Internet. Those addresses look something like this:
This style is usable from the Internet, because RFC-822 allows slashes and equals signs. In fact, there's the opposite problem: RFC-822 allows many characters to be used in addressing that cause an X.400 gateway to go into convulsions. This includes the
@ characterbecause this appears in all Internet-style mail addresses, there's an obvious problem.
Whenever the Internet address has a "special" character, you need to use the following translation table:
For any other special character, such as #, substitute (xxx), where xxx is the three-digit decimal ASCII code for the character. For #, you would use (035).
For example, then, to convert the Internet address
into something that can be sent from an X.400 service such as MCI Mail, you need to turn it into this:
What a pain_but it works.
Using the following instructions should be fairly easy. To send mail to CompuServe from an Internet mail account, see the translation instructions in the section "CompuServe."
Parts of the address that you have to replace with appropriate information are given in italics. For instance, with
you need to replace userid with the recipient's account name or number. domain is the part of the Internet address after the @.
If you are sending mail from one service to another through the Internet, for example from WWIVNet to CompuServe, you will have to do two translations. First, check the section "CompuServe" and see how to translate the ID "From
Internet." Then check the section "WWIVNet" and see how to translate that address "To Internet." If you do this from one strange network to another, the name may be a crawling horror, but at least it should be possible.
America Online (AOL) is a major commercial information system that recently joined the Internet (although it has had Internet e-mail for a while). Its Internet e-mail is seamless from an Internet point of view_
From Internet: America Online looks just like any other normal Internet site.
To Internet: There's no need to do anything special; just use the regular Internet format.
To Others: America Online lets you use special abbreviated domains for mail to AppleLink, CompuServe, or GEnie. Send your mail to userid@applelink, userid@cis, or userid@genie, respectively.
AppleLink is Apple Computer's network.
From Internet: Use standard Internet addressing:
To Internet: This is a bit nastier. You must address it like this:
The whole thing must fit in 35 characters or less, so some addresses may be flat out impossible by normal methods. That's life_
AT&T Mail is a commercial e-mail service provided by AT&T. You know who they are. AT&T mail doesn't use an X.400 gateway, thankfully.
From Internet: Use standard Internet addressing:
To Internet: Use the following:
Note the backward order herethis is the old bang-path type addressing. Oh well.
BITNET is an old academic network that is becoming less important as more and more of it gets sucked into Internet, but you still might have to use it to contact someone at an educational site.
From Internet: Use the following addressing:
bitnetsitename is the name of the BITNET site where the person's account resides. gateway is the name of a site that is both on the Internet and on BITNET and can route mail between them. A commonly used one is mitvma.mit.edu, but you may
have a closer one you can use. Ask your administrator.
To Internet: Oh boy_each BITNET site varies in the mail software it uses. If you're lucky, you can just use the Internet address and the gatewaying will happen automatically:
If that doesn't work, try this:
If neither of these methods works, ask your administrator.
BIX is the Byte magazine Information eXchange, a commercial service oriented toward techies and/or Byte magazine readers. It's been bought by Delphi, but still operates as a separate source.
From Internet: Use standard Internet addressing:
To Internet: You'll need to use the Internet Services menu option from the main menu, then use standard Internet addressing:
CompuServe is a very large commercial system. It's so large that it hasn't yet felt the pressure to join the Internet except by offering a mail gateway.
From Internet: Use standard Internet addressing with one difference: CompuServe IDs are in the form 77777,7777. Since Internet dislikes commas in addresses, you need to change the comma to a period:
To Internet: You need to add a prefix to the standard Internet addressing:
Delphi was the first of the large commercial services to really embrace Internet. It looks like any standard Internet site as far as Internet Mail is concerned:
From Internet: Use the following addressing:
To Internet: There's no need to do anything special; just use the regular Internet format:
This is another commercial system from AT&T.
From Internet: Use the following addressing:
To Internet: As far as I can tell (from the AT&T types I spoke to), this isn't currently available.
This is Telecom Canada's commercial service with X.400 gatewaying.
From Internet: Use the following addressing:
Remember that I told you the bang-path format is almost obsolete? That's not true here yet.
To Internet: Brace yourself_you need to use the following addressing:
replaces @ because X.400 doesn't like the @ character. For other special X.400 characters, see the section "X.400 Addressing."
FidoNet is a large international BBS networksort of the Internet for the BBSing crowd. It's not as fast as the Internet, but access is usually very cheap, and chances are there's a FidoNet BBS in your area.
Because it's run over phone lines, the BBS operators will rack up long-distance charges for any mail transferred, so please don't send large messages to FidoNet sites. Many sites will even chop your messages to 8000 or 16000 bytes, so much of your
message won't get through.
From Internet: First, you need to know the network address of the BBS your recipient is on. It will be in a form such as Z:N/F.P. Then send the mail to the following address:
If the network address of the BBS doesn't have a P component, leave the pP. part out of the address. For the userid replace any nonalphanumeric characters (such as spaces) with periods (.).
To Internet: Use standard Internet addressing with a suffix:
userid@userid ON gateway
The gateway is a special FidoNet site that acts as a gateway to Internet. You can use 1:1/31 unless you find a better one.
Example: email@example.com ON 1:1/31
GEnie is General Electric's commercial information service.
From Internet: Use standard Internet addressing:
To Internet: Use standard Internet addressing with a suffix:
Gold 400 is British Telecom's commercial X.400 system.
From Internet: Use the following addressing:
You'll need to have the recipient tell you his or her userid, org_unit (organization unit), org (organization), and prmd (private mail domain).
To Internet: Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses, but here's the format:
Example: /DD.RFC-822=bsmithwubba.edu/O=uknet/PRMD=uk.ac/ADMD=gold 400/C=GB
KeyLink is Telecom Australia's commercial X.400 mail service.
From Internet: Use the following addressing:
You'll need to have the recipient tell you his or her userid, org_unit (organization unit), and org (organization). The org_unit might not be usedin that case, just eliminate it and the period that follows it.
To Internet: Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses, but this is the general format:
(C:au,A:telememo,P:oz.au,"RFC-822":"name - <useriddomain>")
name isn't actually used for delivery, just as a comment.
Example: (C:au,A:telememo,P:oz.au,"RFC-822":"Bubba Smith - <bsmithwubba.edu>")
MCI Mail is MCI's commercial e-mail service.
From Internet: There are several options. Each MCI user has a name (Jim Jones) and a phone number (123-4567) associated with his or her account. The number is unique to that account, so you can always send mail to an address such as the following:
If you know there is only one J Jones with an account at MCI Mail, you can send mail to
where F is the first initial and Last is the last name. Or, if you know there is only one Jim Jones you can send mail to
where First is the first name and Last is the last name. Note the underscore between them.
To Internet: When MCI prompts you with To: enter
name isn't actually used for mail delivery, but you can put the person's real name here. MCI then prompts you with EMS:. Respond with
Then MCI asks for Mbx: and here you can enter the real Internet address:
Prodigy is a large commercial service, Prodigy Information Services (jointly developed by Sears and IBM).
From Internet: Use standard Internet addressing:
To Internet: This is a little tougher. Support for doing this isn't integrated into the standard Prodigy software, so you need to use their special offline Mail Manager program. It works only for IBM PC users and it'll cost you $4.95. When online, Jump
to 'ABOUT MAIL MANAGER' and proceed from there.
Hmm_AT&T and MCI have commercial mail services. Sprint has to have one, if only for the principle of the matter. Actually, to be fair, Sprint has always been one of the more network-oriented phone companies. You may have used their Telenet network.
From Internet: Use this addressing:
first and last are the recipient's first and last names, of course, and organization is the recipient's SprintMail organization name.
To Internet: Use this addressing:
Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses.
Example: C:USA,A:TELEMAIL,P:INTERNET,"RFC-822":<bsmithwubba.edu>) DEL
WWIVNet is the largest of several networks for BBSes running WWIV (World War IV) software. Traffic from node to node is long distance in several places, and the gateway site uses long distance as well, so please be courteous and don't send or receive
anything large (over 8 KB or so).
From Internet: Use this addressing:
You'll need to find out from your recipient his or her userid and nodethey'll both be numbers.
To Internet: Use this addressing:
This is almost standard Internet format, but you replace the @ with a # and add a suffix:
There are other gateways around and more are sure to appear. Most services offering this type of gateway should have at least some clue of how the address translation needs to be doneask the service if you need to know.
How do you find someone's e-mail address? Usually the best way is just to ask the person, but I've met several people who know they have an account but don't know exactly what their mail address is! They do most of their work locally and receive no
If you're the solid type who knows your e-mail address, you can have the unfortunate type who doesn't know his or hers send you e-mail. If that person is on another network, you may have to do the translation as detailed in the section "Internet
E-Mail Gateways." When you get the mail, 95% of the time the From header will include the address information you need, including all the network translation crud. The only way to be sure is to try it.
If that doesn't work, you can try examining the Received and Reply-To headers to see exactly what's going on.
There are many places that keep mail address compilations. If the person you are looking for belongs to a commercial system, you may have to log on to that system (or have someone else do it for you) and look up the account.
For many Internet addresses, you can send mail to the Internet address firstname.lastname@example.org with just help as the body of the message.
For BITNET addresses, send mail to the Internet address email@example.com with send bitnet servers as the body of the message. This should give you a current list of BITNET nameservers you can query.
To find someone in the communications field, try RPI's address server. Send mail to Internet address firstname.lastname@example.org with help as the body of the message.
UNINNETT of Norway maintains an X.500 address registry service. Send mail to Internet address email@example.com with help as the body of the message.
PSI runs an X.500 service at Internet address firstname.lastname@example.org with help as the message body.
MIT keeps track of every person who has ever posted an article to USENET since the late 1980s (many USENET readers would be shocked to know this). This includes those from other networks who use a news gateway. If the person you are looking for has
posted an article to USENET since then, he or she might be in this database.
Send mail to the Internet address email@example.com. In the body of the message, put this:
send usenet-addresses/key1 key2 key...
The keys should include all the words you think might appear in the address, usually parts of the person's name. In many cases you will use only key1. The keys are case insensitive.
You can try the following:
to return several entries. The server will return only 40 matches, so if your keys are overly general ("Smith") you will need to give more keys, such as a first name, to narrow the search.
You can do several searches at once by placing several send usenet-addresses/keys lines in the message.
What's on your business card? Probably your name, company, position, phone and fax numbers, your address, and maybe some spiffy design.
Well, the business card of the 1990s also includes your Internet address. E-mail is almost always cheaper, faster, and more convenient than a fax or snail-mail. Putting your e-mail address on your business cards is one of the best ways to encourage
people to use it. Not only is this useful, it's got more than a certain amount of trendiness, if you like that. With everybody and their cousin "discovering" the Internet, it's hip, it's happening, it's all the right adjectives. The trend may
pass, but the e-mail address will still be useful.
Now, how do you give your address on your business card? I've heard people recommend "E-mail Address," "E-mail," "Internet," and other variations. My suggested solution is simple and elegant: just give your address without
giving it any kind of label at all. The "@" should start frantic alarms ringing in the head of anyone who would know how to use your address, and if they don't know what it means, no explanation you can fit on your card is going to help.
For best results, give the address in Internet format, even if your account is on another service. If you're on CompuServe as ID 11111,2222, give your address as firstname.lastname@example.org rather than as CompuServe ID: 11111,2222. With the first format
anyone who can send Internet mail can reach you, and CompuServe users will be smart enough to realize that the first part is your CompuServe ID. The second format requires that someone know how to do the 11111,2222 to email@example.com conversion,
and they haven't all read this book. Of course, this assumes that you want non-CompuServe people sending you mail.
With e-mail you can carry on a conversation with another person. But why not with three others? Easy enoughjust use the Cc header or specify multiple recipients on the To header. What about hundreds? Well, that might be tough. But what if there
were enough interest in something (such as the band REM) that someone agreed to serve as a central dispatch point? All mail to that account would be sent to all other people in the discussion. This is known as a mailing list, and they are quite popular.
The REM list mentioned has over 800 subscribers.
The first thing you have to realize is that when you join (subscribe to) a mailing list, all of a sudden you're going to have a lot of messages in your mailbox. Can you handle the extra time it's going to take to read these new messages? Are you paying
for mail? Many people don't comprehend exactly what they're getting into when they sign up for a mailing list. Remember to save the instructions on how to unsubscribe from the group, so you don't send your unsubscribe request to all the members of the
group and feel like a fool.
First you need to find some lists. Every month several informative postings are made to the USENET group news.answers, describing hundreds of mailing lists and how to subscribe to them. David Lawrence posts "Mailing Lists Available in USENET."
Stephanie da Silva posts "Publicly Accessible Mailing Lists." If you have USENET access, news.answers is your best bet. Perhaps some of the people you correspond with know of some lists.
If neither approach works, you can use the uga.cc.uga.edu mailserver described in the following section.
LISTSERVers are nifty automatic programs that handle much of the drudgery involved in maintaining a mailing list. There are several such LISTSERVs, but you need only one to get started. I suggest you use firstname.lastname@example.org. Others include
email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, LISTSERV@PSUVM.PSU.EDU, and LISTSERV@SJSUVM1.SJSU.EDU.
Commands to these sites are simple. You can give a new instruction on each line of the body if you like, although generally most of your requests will consist of a single line.
To start with, try sending mail to firstname.lastname@example.org with only the text help in the body of the message (the subject doesn't matter). You should get back a list of valid commands. Probably the most interesting for you will be listserv refcard,
which returns a reference card and lists global, which returns a big list of all known mailing lists on many LISTSERVersit's over 300,000 bytes. You're in mailing list heaven! If that's too big, try just lists.
If your mailing list is managed by a LISTSERVer, joining a list is easy. Send mail to listserv@domain, with the following message line:
SUB LISTNAME Firstname Lastname
LISTNAME is the name of the list, such as HUMOR. Firstname and Lastname are your first and last names.
To sign off the list, use this:
Do not send your unsubscribe request to the mailing list itself. You'll just irritate people and they'll laugh at you.
If you would rather get one mailing a dayconsisting of all the posts to the mailing list in one big chunkrather than receiving dozens of little messages during the day, use this:
SET LISTNAME DIGEST
To get each piece as it is sent, use this:
SET LISTNAME MAIL
There are other commandsthe help command should get them for you.
If the mailing list isn't being handled by a LISTSERVer, you're at the mercy of the mailing list maintainer as to how subscriptions are handled.
Generally, the address to send messages to for a mailing list is this:
The address to send messages to for subscribing and unsubscribing is this:
However, you can't always count on these. Sigh. In this case you have to rely on the instructions for the specific list, which you need to get from the maintainer or a friend.
I'm not going to go into too much detail about mail sorting because it's a rather complex subject, but sometimes you get to the point where you can't treat your incoming mail file as a single entity.
I get literally hundreds of messages a day, and I would go insane if I didn't use a program known as a mail filter. These look at your incoming mail, and based on criteria you set regarding the contents of header items or message text, they sort the
mail into several mailboxes before you even see them.
For instance, I subscribe to several mailing lists. I route messages from each of these into a separate mailbox for reading at my leisure. I have USENET voting ballots arriving all the timethese go into a special voting file for processing by the
voting software. Everything that's left goes into my general mailbox for normal reading.
Actually, mail filters can often do more than this. You can use them to selectively forward mail to other users, or to send automatic responses to certain messages. You can even have them send only a single informational message to anyone who mails you
while you're on vacation, no matter how many messages they send you during that time.
The drawback to a filter program is that they can be tough to set up, unless you're using a mail client with the capability built in (for example, Eudora). You need to carefully check your configuration files to make sure you aren't accidentally
dropping messages on the floor!
procmail is probably the most popular of the mail filters. You have quite a bit of control over your messages, and can even pass them through other programs, such as a formatter, before they are saved. It can execute other programs on demand, and can be
used to run simple mailing lists or mail servers. It's been extensively tested, it is stable, and it is fast. Be careful, though, that you don't accidentally tell it to send some of your mail into a black hole.
You can get the latest version by anonymous ftp to ftp.informatik.rwth-aachen.de as pub/unix/procmail.tar.Z.
Although procmail is the king of the hill for mail filter programs, I personally like deliver. You write shell scripts to handle all incoming messages. This requires more work on your part, usually, than would procmail, but it's very clean, almost
infinitely flexible, and limits what you can do with your e-mail only to how well you can program scripts. The speed shouldn't be too much of a concern on that fast machine of yours.
I found deliver by anonymous ftp at sunsite.unc.edu as /pub/Linux/distributions/slackware/nl/deliver.tgz.
I can't recommend or condemn this program, as I'm not that familiar with it, but it's another well-known e-mail filter. This one is written in the perl language, which again means that you can do anything with your e-mail by extending mailagent yourself
(if you know perl). It comes with quite a few built-in features. I'd suggest this if you know perl. Anonymous ftp to ftp.eff.org and get /pub/net-tools/perl-mailagent.tar.Z.
Elm comes with a support program named filter, which does mail filtering. See the section "The Elm Mail System" to see where to get this.
As mentioned before, standard Internet mail allows only normal text in the message body, nothing fancy like programs or graphics. This is just one of the ways the Internet is showing its age.
However, as soon as someone realizes there's a limitation, someone else comes up with a way to circumvent it. There are two major ways this particular problem is dealt with: the quick hack and the long-term solution.
This is the quick hack. uuencode is a program that takes a program or an 8-bit file (such as a GIF) and encodes it as 6-bit printable characters. Because all Internet mail sites are supposed to pass normal ASCII printable characters unmodified, the data
should make it through to the other side.
Here's a simple example. The file test1 contains the text This is a test. Run it through uuencode and place the result in test1.uue:
uuencode test1 test1 > test1.uue
This is the standard uuencode command format: first the name of the file you want to encode, then the name the file will be given when it is unpacked on the other end, and then the command to send the output to a file. Normally, you want the file to
have the same name when it is unpacked as it does now, so both names (test1 and test1) will usually be the same in any uuencode you do. When you cat test1.uue you get this:
begin 660 test1 .5&AI<R!I<R!A('1E<W1! end
The first line contains uuencode's begin signal, then the UNIX file permissions of the file, then the name to which the file should be unpacked. The second line contains the encoded data, which consists of all printable characters. Finally, a blank line
and end (to end the file). You can freely send this through almost any mail system.
You can even send the uuencoded data directly to someone else without an intermediate file:
uuencode ttt.exe ttt.exe | mail -s "Tic Tac Toe" mybuddy
Now that you have the encoded program, you have to decode it. For that you use uudecode.
First, save the e-mail message to a file. In mm90 I'd use move test1.uue (the .uue just reminds you that it's a uuencoded file). Then decode it:
It's as simple as that. Well, not quite. A lot of other crud, such as message headers, ended up in the test1.uue file. Sometimes the sender adds some commentary before the data. uudecode is supposed to find the beginning of the actual uuencoded data in
the file, but sometimes it gets confused, and you might have to use your editor to trim off everything before the begin line and after the end line.
Now look at the resulting file with cat test1:
This is a test
It worked! You could have just sent this sentence through the mail, of course, but programs should work this same way, but it's tough to show their contents in print, except as a hex dump. This would probably send weaker readers screaming, hence the
example shows just the simple sentence.
Wait! All is not paradise. test1 was a short file. What if you want to send a 200,000 byte file? Add the 35 percent, and we have 270,000 bytes after the file is encoded. That's a hefty message by any estimation. Although you usually won't run into the
problem with normal messages, some sites have a limit on message size, usually around 64,000 bytes. If you send your file as one big chunk, only a fourth of it may get there. What you need to do is split it up into smaller chunks.
You can do this manually, but there's a UNIX program that will do the job for you: split. Just tell split the number of lines you want in each piece, and it'll go snicker-snack, sending that big file galumphing back. The number of lines doesn't tell you
the size exactly, but you can experiment. I find that using 800 lines per piece will give you nice, safe 50,000 byte chunks. Here's how it works:
uuencode bigfile bigfile > bigfile.uue split -800 bigfile.uue splits mail -s "Bigfile.uue 1/3" mybuddy < splitsaa mail -s "Bigfile.uue 2/3" mybuddy < splitsab mail -s "Bigfile.uue 3/3" mybuddy < splitsac rm bigfile.uue splits??
The hidden piece of the puzzle is that split takes the number of lines and the file to split, then a base name for the output files. In this case it's splits. It then names the resulting files splitsaa, splitsab, splitsac, and if necessary, all the way
up to splitszz. This gives you 676 pieces. If that's not enough, you're cleaning your house with a toothbrushyou should probably use another method to transfer the files. The subjects with 1/3, 2/3, and 3/3 are just to let the receiver know how many
pieces total there are and which piece of the whole each message is.
Now the receiver has to save all the messages into a big file, edit out everything except the uuencoded stuff, then run uudecode on the resulting file. It's cumbersome, but it works. If you do this a lot you can use a program that automates the uuencode
splitting, mailing, and recombining. There's a program for everything.
If you're on a UNIX system, uuencode, uudecode, and split should come standard. If you're using DOS or a Mac, you'll have to get one from a friend or via ftp.
If you're using DOS, anonymous ftp to oak.oakland.edu. Go to the directory /pub/msdos/decode and grab uuexe525.zip. This is a very nice uuencode and uudecode for the PC that is actually superior to the standard UNIX version. For instance, it will
automatically reorder the pieces of the file if they're out of order.
If you're using a Mac, anonymous ftp to sumex-aim.stanford.edu and grab /info-mac/cmp/uu-lite-15.hqx. It's a very full-featured uuencoder for the Mac.
For any computer for which you have a C compiler available, you can anonymous ftp to oak.oakland.edu. Go to the directory /pub/misc/unix and grab uuencode.c and uudecode.c. This is the portable C source for the standard uuencode and uudecode and should
work on almost any computer. The portable C versions of uuencode and uudecode are simple but are always there.
No, silent weirdos in whiteface haven't invaded Internet. MIME is a specification for the extension of Internet mail to include attachments of programs, data, and multimedia. This is one of the long-term solutions.
You should be able to use one MIME application to mail full-motion video with sound to someone who can use a MIME application to play it back. In reality it's not quite that easy except in some very specific cases (such as the exact same program being
used on both ends). However, it has advanced to the stage where many mail programs are MIME compatible enough that they can encode and decode files, as well as pictures, enclosed with a mail message.
This can be a useful feature if you're going to be sending a large number of files via mail, although, of course, the sender has to support it as well.
Whew! There's a lot to talk about regarding e-mail (and there's more yet to learn). If you've read this section and understand a good portion of it, you know more about mail than the great majority of Internet users. And if you're using it as a
reference, I hope it serves well. Here we fondly bid farewell to e-mail and move on to something even bigger.
Ah, USENET! Consumer of more person-hours than the great pyramids of Egypt. An information (and noise) source of unimaginable proportions.
When you say USENET people tend to think of Internet. What is it, really?
The best way to describe USENET is in terms of e-mail (since you've just read that subject to death). Think of your mailbox, with all its new and old messages. Imagine what it might be like if everyone on Internet could read that mailbox, enter new
messages, and leave replies. Now imagine having 5,000 mailboxes. That's USENET.
Or think of USENET as a huge set of public bulletin boards that millions of people read. Occasionally these folks write their own notices to nail to the church door, as it were. That's USENET.
Okay, you want to get away from cheesy analogies. USENET is a huge public messaging system. It is divided into thousands of discussions of different subjectseach separate piece is known as a newsgroup, or group. When someone enters a message while
"in" a group, that message goes to all other USENET sites in the world, and people reading that same group can read the message and reply to it if they care to. Generally, there are dozens of different conversations ("threads") going on
in any particular groupeach is distinguished by a subject name, much like the Subject in a mail message. There are thousands of new messages posted each day. That's USENET.
USENET is commonly thought of as being the same thing as the Internet, but they're not the same thing. The Internet is an international network of computers tied together via dedicated lines. USENET is just one of the services that uses the Internet. If
you're familiar with bulletin board systems (BBSes), you might think of the Internet as the BBS hardware, and USENET as the message bases.
Not all computers on the Internet have USENET (it can take a lot of space!). Not all computers carrying USENET groups are on the Internetlike e-mail, some systems call Internet systems to exchange USENET messages. Don't say one when you mean the
Frankly, capitalization standards on Internet are quite relaxed. You can call it USENET, you can call it Usenet, you can call it UseNet. People will know what you mean. If you call it UsEnEt, people will start edging nervously for the exits. You can
even refer to it by the ancient moniker Netnews (or NetNews). People will understand what you mean.
You can call the subject groupings into which USENET is divided groups or newsgroups. Please don't call them BBoards, as for some reason this upsets some inhabitants.
USENET comprises tens of megabytes of new posts a day and over 5,000 groups. Nobody can read it all, even if they go with an IV and read 24 hours a day. Your goal is to find as much possible useful information on subjects that interest you in the time
you allot for yourself each day.
If you're interested in something, it's probably talked about in some group on USENET, and the amount of information is staggering. It can quickly become your prime information source for several of your interest areas.
That information is buried among lots of noisethings you aren't interested in or posts that are of no use to anybody and may even be designed to confuse. Your goal is to separate the wheat from the chaff with maximum efficiencyhopefully
keeping the wheat.
USENET isn't an anarchy in the popular sense of being total chaos. But while anarchy excludes outside control, it doesn't preclude self-control, and USENET is a web of written and unwritten agreements on the proper rules of behavior. Your goal is to
avoid violating these codes of behavior until you know enough about them to decide when they can be broken.
Well, it can be intimidating, especially if you just jump in as though you're on a local BBS discussion group. However, there are tried and true ways to ease painlessly into USENET, and I'm here to help you with those. I can help you attain your goals.
This isn't a technical overview of USENET, but there are a few concepts you should know before you begin.
USENET messages are much like the Internet mail messages described earlier this chapterthey consist of a header, which has information about the message, and the body, which has the actual message. They even use the same format as mail messages,
and most of the same headers are valid. There are a few new ones, which are covered in the following sections.
Every computer that gets USENET keeps a database of USENET messages. When a new message is entered, it is sent to neighboring USENET sites using NNTP (Network News Transfer Protocol). These distribute the post to other sites, until it is on every
machine on USENET. There are various mechanisms to prevent a message from showing up on the same machine more than once, which we don't need to get into here. Only occasionally does a broken machine (usually a FidoNet gateway) regurgitate old articles back
onto the Net.
Because posts can take different paths to reach different machines, there's no guarantee that you'll see a specific post before you see the reply to the post. For example, someone posts a message from Machine A, which sends the post through slow Machine
B to get to your machine. It also sends the post to another machine, C, which gets it immediately. Someone there replies to it quickly, and C sends out the post to its neighbors, including Machine D. Machine D sends the reply on to you, where you see it
immediately. In the meantime, the original post still hasn't gotten past Machine B to your computer. This is fairly common, although the scenario is usually more complicated. Don't be alarmed.
I said that all machines get all posts. Well, sort of_because USENET is so huge, many sites only carry a subset of all the available groups. A site won't get posts for groups it doesn't care about, or if it does, it won't keep them. In addition, there's
something called a Distribution header that you can put in your message to try to restrict its distribution to a geographical area, such as San Diego. This is useful for messages that affect only San Diego.
Newsgroups are named like this:
This is a hierarchy reading down from left to right. Reading the group name, you have a computer group for computer systems from ibm, the pcs to be exact. You're talking about games for those systems, more specifically action games.
Here's another one:
You have a group for talk about politics, more specifically gun control. I'll talk more about these hierarchies later.
The newsgroup with which your post is associated is given in the header of the message, in the Newsgroups item. It looks like this:
That's not much of a concept, but here's a mindblowing concept if you're used to traditional BBSes. Each post can go in multiple groups! If I do this:
my post will appear in both groups. This is known as crossposting. While you should know it is possible, you shouldn't actually do this until you've looked around a while, because frivolous crossposting is frowned on.
In fact, there's another header that can be used to send any replies back to a specific group. For instance, you might make a wide informational post to several groups, but specify that the discussion (if any) should be only in a single group. This is
the Followup-To header. Together, the headers look like this:
Newsgroups: rec.arts.comics.misc,rec.arts.comics.strips, rec.arts.comics.animation Followup-To: rec.arts.comics.animation
Remember from the e-mail header discussion that one header can spread over several lines, as long as succeeding lines are indented. That's what you did to split Newsgroups over two lines. All replies to the post will go to rec.arts.comics.animation,
unless the person replying overrides that.
Crossposting can be abused, but more on that later.
An original post and all the replies to it are considered to be a single "thread" of conversation. This can actually look more like a Christmas tree than a straight line, as there are replies to replies, and replies to those replies, which
branch off until each sub-branch dies of finality or boredom.
Each USENET message has a Subject associated with it that is supposed to summarize the contents of the message (although this is often not the case). One way to track a thread is to note the message subjects, which those who reply to the post are
supposed to preserve until the discussion wanders too far from the original subject. The only way to fully keep track of threads is to use a threaded newsreader, which is discussed in the next section.
The first item of business is which program you will use to read USENET. Your choice of these programs (known as newsreaders) can hugely impact how you read the Net, how much information you get out of it, and how much garbage you have to sludge
rn is free, so there's a good chance the system you use to read mail has it, and a good chance that it will be offered to you as your default newsreader. Avoid using it if you can!
Back when rn was first written, one person could read every single message posted to USENET and still have time for a life. It reflects those simpler timesits default is to dive in and show you all the messages in the group, one at a time.
This sounds reasonable, but it's a fact that the majority of the posts on most newsgroups you will read are of no interest to you. "What?!" you cry. "I could never get enough information on Mystery Science Theater 3000!" You wouldn't
think so, but there will come a time when you no longer wish to slog through every post on the group and become choosy about which posts you read. rn does not let you do this easily. Since popular groups can get over 100 messages a day, rn's preference for
showing you every single message really wastes your time.
Just how much of your time rn wastes is evident the first time you run another news program that first gives you an overview of the group. It provides you with a summary line for each post, just as a mail program doesit gives you the poster's
name, the subject, and possibly the message size. Scroll through the pages of summaries and choose which posts look interesting. When you're done choosing, read the posts you've selected.
This is already a major shift in conceptinstead of having to read everything to decide what you don't want to read, you are choosing which few posts look interesting.
Now I'll add another concept to thatthe newsreader should keep track of which posts are related to each other and group them, so you can select or ignore whole groups of posts at once. It can do this by noticing the threads and subject names
These two changes account for an almost unbelievable difference in speed between a good threaded newsreader and something line rn. Now that I've gotten good at determining which threads look promising and which don't, I can read USENET literally 100
times faster than I could before. I'll recommend some right after this_
What if you knew a particular subject were of no interest to you, and that you would never read a post by that name again? It's a waste of time for the newsreader to even offer it to you. This goes doubly for certain people who do nothing but generate
noise on USENET. It'd be nice never to see any of their posts.
This is what a kill file is for. In its most primitive form, you give it a subject or poster whom you never wish to hear from again. Usually you'll be allowed a little bit of fine-tuningyou may wish to kill that subject only in one particular
In a group where over half the discussion is about something you don't care about (for instance, a particular author on a fantasy group), having the newsreader kill all articles relating to that author can save you time and make you less likely to lose
valuable articles in the crush.
There's also the opposite of a kill file. If you know you will want to read every posting on a particular subject or from a particular person, a selection file lets you have the newsreader automatically mark them for reading. This isn't quite as common
as the kill file.
This is one of those religious preference questions, similar to "What's the best editor?" I would say that any newsreader that has the following features is a contender:
The rest is just gravy, although I'm tempted to add "Is very configurable" to the list.
Unfortunately, compiling and configuring a new newsreader can be a very hairy business, especially if you're new to USENET. For now, you might have to use whatever your system has availableif there's nothing but rn, pester your administrator.
NN (No News [Is Good News]) has probably the largest number of users of any newsreader other than rn. It's fast, flexible, very configurable, has very nice kill and selection options, sorts messages in several ways, and offers several ways to manage the
old messages. It's even got its own group, news.software.nn. This is definitely worth a look.
Other UNIX readers that are worth looking at (if your site offers them) are TRN, STRN, and TIN. They meet or exceed the criteria given. You can also read the USENET group news.software.readers for the latest information.
For other systems, you should be reading the USENET groups comp.os.msdos.mail-news and news.software.readers. There are, most likely, programs out there for your system. For instance, there's Trumpet for DOS and WinTrumpet for Windows. If you have a
complete TCP/IP package, you might want to see if it includes a mail reader (other than rn).
Just as you can use a mail client to do your mail processing offline, you can use an offline reader to do your USENET processing offline. This is useful if you're paying by the minute for your connect time. See the group alt.usenet.offline-reader for
help with these.
How do you find the groups that interest you? Say you want to find a beer group. Now what?
As mentioned earlier, group names are arranged in hierarchies from left to right. The left item is known as the top-level of the hierarchy. In the case of a group such as this:
it is said that the group is "in the alt hierarchy" (or "alt. hierarchy"). The Net is organized into seven major hierarchies, one anarchic hierarchy, and a bunch of smaller, less important hierarchies.
The big seven hierarchies are the following:
Computer topics. This ranges from programming to hardware to peripherals to folklore. Most popular computer systems and operating systems have their own set of groups here.
Miscellaneous. When nobody can figure out where to put a new group, it often ends up under misc.. For example, the misc.jobs groups don't clearly belong in any of the other six hierarchies, so they go under misc..
The business of USENET. This is where people talk about USENET administration, propose new groups, and argue about when USENET is going to die of its own excesses.
Recreational topics. This is where most of the hobbyist stuff, such as rec.crafts.jewelry, goes. It also contains artistic and music discussions, crafts, and more in that vein.
Science. This is where the math and physics types hang out. Medical, too, such as sci.med.radiology.
Social topics. This is a grab bag of many cultural groups for different regions, such as soc.culture.chile, social research groups, religious discussion groups, and alternative lifestyle groups. It's something of a milder version of the talk hierarchy.
Heated debate. Incredibly vicious personal attacks by people (most of whom seemingly haven't even heard of the concept of "critical thinking") that go on interminably about all the things you would expectpolitics and religion. See talk.politics.mideast, for example. No debate here is ever really ended.
These hierarchies are sometimes known as USENET proper and are considered by many news administrators to be the only "real" hierarchies. For a new group to be created in any of these seven hierarchies, it has to go through a group interest
polling procedure that discourages overly frivolous group creation. More on this later.
Actually, some of my favorite groups are in the .alt hierarchy, but it has a mixed reputation. Unlike the big seven hierarchies, anyone who cares to send a group creation message for a new group can make an .alt group. This is often followed by someone
else sending out a group removal message if they consider the group outrageous, but still it's a lot looser than the big seven groups. For instance, one group in the alt. hierarchy is alt.barney.dinosaur.die.die.die. The alt. hierarchy is also
controversial because groups such as alt.sex.stories reside here, and because of the alt.binaries.pictures groups, which involve huge amounts of message space chewed up by pictures. Because of all the hassles involved with alt., many sites don't carry any
of the groups.
I consider that a shame, because alt. is also a haven for groups that can't find a home in the big seven hierarchies. For instance, discussions of TV shows are generally considered transitory, since interest in the show will probably eventually die out. For this reason, people are unwilling to vote to place a group for a show such as "T