Полезная информация

Previous Page TOC Next Page Home


Communicating with Others

By Ron Dippold

The Internet would be useful as simply a data-sharing device—being 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 Internet—person-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.

Electronic Mail (E-Mail)

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.

Basic Concepts

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 data—organizing your data, in this case e-mail. The second problem is how to format the information—how 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.

Internet Mail Is More Than Internet

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

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.

E-Mail Is Text

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 limitations—if 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.

E-Mail Formats

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 person—just 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 modified).

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 pieces—a 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 line—not 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.

E-Mail Addressing

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 this—from 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 concept—each 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 rawthah@harvard.edu sends mail to jfaceless@hugeco.com, someone needs to figure out how to get it to him—this 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, hans@bratwurst.edu.de 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.

E-Mail Headers

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!

Header Format

A header item looks like this:

keyword: value

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 lines—this is indicated by starting following lines with white space (a tab or space).

Here's a common header item:

From: wakko@watertower.com

This identifies that the message is from wakko@watertower.com. 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: luke@yoda.jedi.edu

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: darth@deathstar.empire.gov
Minimal Header Items

Technically, the only header item you need to send mail to someone is the To header:

To: userid@domain

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: cerebus@aardvarks.sim.com

To: astoria@regency.com

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.

Common Header Items

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 nihil@eniac.seas.void.edu Wed Feb  1 08:15:01 1993

Flags: 000000000015

Received: from phones.com (phones.com []) by

happy.phones.com (8.6.5/QC-BSD-2.1) via ESMTP;

id IAA13973 Wed, 1 Feb 1993 08:14:59 -0800 for


Received: from linc.cis.void.edu (root@LINC.CIS.VOID.EDU

[]) by phones.com (8.6.5/QC-main-2.3) via ESMTP;

id IAA14773 Wed, 1 Feb 1993 08:14:56 -0800 for


Received: from eniac.seas.void.edu (nihil@ENIAC.SEAS.VOID.EDU

[]) by linc.cis.void.edu (8.6.5/VOID 1.4) with

ESMTP id LAA17163 for <rdippold@phones.com>

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: nihil@eniac.seas.void.edu (Ex Nihilo Nihil Fit)

Sender: nihil@ocean.void.edu

Reply-To: nihil@void.edu,nihil@freenet.com

Cc: group-stuff@uunet.UU.NET

Cc: james@foobar.com

Message-Id: <199302011614.LAA24236@eniac.seas.void.edu>

Subject: Re: Apple IIe/IIgs Software and books for SALE...

To: rdippold@phones.com (Ron Dippold)

Date: Wed, 1 Feb 93 11:14:44 EST

In-Reply-To:     <CMM.342342.rdippold@happy.phones.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 nihil@eniac.seas.void.edu 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.

Flags: 000000000015

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 []) by

happy.phones.com (8.6.5/QC-BSD-2.1) via ESMTP;

id IAA13973 Wed, 1 Feb 1993 08:14:59 -0800 for


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 last—this 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

[]) by phones.com (8.6.5/QC-main-2.3) via ESMTP;

id IAA14773 Wed, 1 Feb 1993 08:14:56 -0800 for


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

[]) by linc.cis.void.edu (8.6.5/VOID 1.4) with

ESMTP id LAA17163 for <rdippold@phones.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: nihil@eniac.seas.void.edu (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: nihil@ocean.void.edu

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.

Reply-To: nihil@void.edu,nihil@freenet.com

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 it—usually 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.com—if 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: james@foobar.com

The message was also sent to group-stuff@zznet.ZZ.NET and james@foobar.com. You can choose whether to include them in your reply. This also could have been done in a single header statement:

Cc: group-stuff@zznet.ZZ.NET,james@foobar.com

Either form is acceptable. Headers such as From or Sender, however, should appear only once in the entire header.

Message-Id: <199302011614.LAA24236@eniac.seas.void.edu>

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: rdippold@phones.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 Time—another way of giving the time zone.

In-Reply-To:  <CMM.342342.rdippold@happy.phones.com>;

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.

Content-Length: 10234

The length of the body of the message (not shown here) is 10,234 characters.

Other Header Items

There are some other header items that might be occasionally useful for you to know:

Bcc: recipient

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 field—some mail programs will let you search on keyword.

Comments: comments

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.

Date Fields

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:00—23: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
Don't Sweat the Headers

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.

Mail Programs

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.

Your Mail Files

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 file—the 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 mail—it either sends it on immediately or saves the mail up to save in batches.

Using Mail Programs

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.

Message Summaries

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 information:

Reading New Messages

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

Operating on Old Messages

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.

Common Mail Functions

Here's the standard list of mail functions you should learn how to do in your program:

Mail Configuration File

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 program—while 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 wblowhard@longname.deep.stuff.edu. The mail program turns the alias into the full name.

Common Mail Programs

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.

Mail (Berkeley Mail)

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?

The Elm Mail System

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 bad—just press ? at any time.

TIP: Elm tip 1: Press o from the main menu to get the options screen. Press > and Elm creates a file named .elm/elmrc—this is a special options file that you can edit with vi or emacs (or whatever you use). Most of these options aren't easily set from inside Elm. Be sure to read the Ref.guide file for more information on these options.

TIP: Elm tip 2: Elm can act as a command-line mailer just like Berkeley mail does—it even uses the same syntax:

elm -s "subject" recipient < messagefile

TIP: Elm tip 3: Don't ignore the support programs that come with Elm. A few of the most useful ones are the following:

autoreply answers all your incoming e-mail with an automatic reply. This is good if your mailbox is backlogged, or if you go on vacation or otherwise want to let people know that you're behind on reading your mail.

filter saves your incoming e-mail to different incoming mailboxes, deletes it, forwards it, and so on, based on the content of the e-mail message or its headers. This is useful if you subscribe to a mailing list or get lots of mail on a particular subject.

frm lists From and Subject headers for each message, one line per message. This is useful for quickly checking your incoming e-mail.

messages gives a quick count of the messages in your mailbox.

newmail and wnewmail are programs that immediately inform you when new e-mail has arrived. wnewmail runs in a window.

readmsg takes selected messages from a mailbox and sends them to standard output. This is good for quickly extracting and processing mail messages in bizarre ways.

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

Remote Mail Clients

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.

SMTP—Simple Mail Transfer Protocol

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 protocol—the 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.

POP3 (Post Office Protocol 3)

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.

Desirable Features in Mail Clients

Here are some useful features to look for when shopping for a mail client:

A Few Mail Clients

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 client—it'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 info@cybercon.nb.ca requesting information. The final price (before educational discount) should be around $99.


Disclaimer: I work for QUALCOMM—in 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 by itself.

Eudora is fully windows-, menu-, and icon-driven, so you are bound to like this program. Eudora pretty much has it all—features 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 try—if 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 eudora-sales@qualcomm.com for more info, or call 1-800-2-Eudora.

Pegasus Mail

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 david@pmail.gen.nz.


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 POP3—it 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 version—it 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 ecs-sales@edm.isac.ca.

Other Mail Programs/Clients

This isn't all that's available for mail, by a long shot. Read the USENET group comp.mail.misc for more information.

Internet E-Mail Gateways

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 competitor—it'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 advantage—anyone 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_

Addressing Issues

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.

Other Gateway Issues

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.

Cash, Money, Moolah

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.

Case Sensitivity

By custom, Internet addresses are case insensitive. That is, mail to bozo@clown.edu 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?

X.400 Addressing

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 @ character—because 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.

NOTE: By the way, the ! is replaced with because computer users like short names, and refer to an exclamation point as a "bang." Bang! Bang! Bang!

Gateway Translation Specifics

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

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.


Example: jjones@aol.com

To Internet: There's no need to do anything special; just use the regular Internet format.


Example: bsmith@wubba.edu

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.

Example: 11111.2222@cis


AppleLink is Apple Computer's network.

From Internet: Use standard Internet addressing:


Example: exnihil@applelink.apple.com

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_

Example: bsmith@wubba.edu@internet#

AT&T Mail

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 here—this is the old bang-path type addressing. Oh well.

Example: internet!wubba.edu!bsmith


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.

Example: jjones%uxavax.bitnet@mitvma.mit.edu

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.

Example: bsmith%wubba.edu@mitvma.mit.edu


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:


Example: jjones@bix.com

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:


Example: 12345.677@compuserve.com

To Internet: You need to add a prefix to the standard Internet addressing:


Example: >INTERNET:bsmith@wubba.edu


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:


Example: jjones@delphi.com

To Internet: There's no need to do anything special; just use the regular Internet format:


Example: bsmith@wubba.edu


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.

Example: uunet.uu.net!att!attmail!mhs!envoy!12345

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

Example: [RFC-822="bsmithwubba"]INTERNET/TELEMAIL/US


FidoNet is a large international BBS network—sort 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 (.).

Example: Jim_Jones@p4.f3.n2.z1.fidonet.org

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: bsmith@wubba.edu ON 1:1/31


GEnie is General Electric's commercial information service.

From Internet: Use standard Internet addressing:


Example: jjones@genie.geis.com

To Internet: Use standard Internet addressing with a suffix:


Example: bsmith@wubba.edu@INET#

Gold 400

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

Example: jjones@foo.bar.baz.gold-400.gb

To Internet: Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses, but here's the format:

/DD.RFC-822=useriddomain%%/O=uknet/PRMD=uk.ac/ADMD=gold 400/C=GB

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 used—in that case, just eliminate it and the period that follows it.

Example: jjones@froboz.grue.telememo.au

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

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:


Example: 1234567@mcimail.com

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.

Example: Jim_Jones@mcimail.com

To Internet: When MCI prompts you with To: enter

$$name (EMS)

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:


Example: jone45a@prodigy.com

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.

Example: /G=Chris/S=Smith/O=FooInc/ADMD=TELEMAIL/C=US/@sprint.com

To Internet: Use this addressing:

C:USA,A:TELEMAIL,P:INTERNET,"RFC-822":<useriddomain>) DEL

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 node—they'll both be numbers.

Example: 99-8765@wwiv.tfsquad.mn.org

To Internet: Use this addressing:

This is almost standard Internet format, but you replace the @ with a # and add a suffix:


Example: bsmith#wubba.edu@506

Other Gateways

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 done—ask the service if you need to know.

Finding Addresses

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 outside mail.

Send Reverse Mail

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 whois@whois.internic.net with just help as the body of the message.

For BITNET addresses, send mail to the Internet address listserv@bitnic.bitnet 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 comserve@vm.its.rpi.edu with help as the body of the message.

UNINNETT of Norway maintains an X.500 address registry service. Send mail to Internet address directory@uninett.no with help as the body of the message.

PSI runs an X.500 service at Internet address whitepages@wp.psi.com with help as the message body.

USENET Address Server

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 mail-server@rtfm.mit.edu. 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:

send usenet-addresses/dippold

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.

Your Address and Business Card

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 11111.2222@compuserve.com 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 11111.2222@compuserve.com conversion, and they haven't all read this book. Of course, this assumes that you want non-CompuServe people sending you mail.

Mailing Lists

With e-mail you can carry on a conversation with another person. But why not with three others? Easy enough—just 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.

Finding Lists

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 listserv@uga.cc.uga.edu. Others include listserv@mizzou1.missouri.edu, listserv@jhuvm.bitnet, listserv@vm1.nodak.edu, listserv@ucsd.edu, listserv@unl.edu, 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 listserv@uga.cc.uga.edu 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 LISTSERVers—it's over 300,000 bytes. You're in mailing list heaven! If that's too big, try just lists.

Joining and Dropping

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 day—consisting of all the posts to the mailing list in one big chunk—rather than receiving dozens of little messages during the day, use this:


To get each piece as it is sent, use this:


There are other commands—the 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.

Automatic Mail Sorting

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 time—these 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.

Sending Programs and Graphics

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



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

NOTE: The uuencoded file will be about 35 percent larger than the original file. About 33 percent of that comes from converting 8-bit bytes to 6-bit bytes; the other 2 percent comes from control information in the encoding.


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:

uudecode test1.uue

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 toothbrush—you 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.

Getting uuencode for Your System

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.

Au Revoir, E-Mail

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 subjects—each 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 group—each 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 Not Internet

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 Internet—like e-mail, some systems call Internet systems to exchange USENET messages. Don't say one when you mean the other.

USENET Is Usenet Is NetNews

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.

USENET Is an Information Bonanza

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.

USENET Is a Noise Overload

That information is buried among lots of noise—things 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 efficiency—hopefully keeping the wheat.

USENET Is a Controlled Anarchy

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.

USENET Sounds Intimidating

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.

Underlying Concepts

This isn't a technical overview of USENET, but there are a few concepts you should know before you begin.

USENET Messages

USENET messages are much like the Internet mail messages described earlier this chapter—they 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.

The USENET Distribution Model

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.

Newsgroup Names

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:

Newsgroups: news.announce.newgroups

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:

Newsgroups: alt.usenet.future,news.groups

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,


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

rn (readnews)

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 times—its 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.

Message Overview and Threading

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 does—it 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 concept—instead 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 that—the 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 mentioned before.

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_

Kill Files

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-tuning—you may wish to kill that subject only in one particular newsgroup.

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.

Which Newsreader?

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 available—if there's nothing but rn, pester your administrator.

NN (No News)

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

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.

Other Readers

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

Offline Readers

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.

Finding Your Groups

How do you find the groups that interest you? Say you want to find a beer group. Now what?

The Hierarchies

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

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 expect—politics 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.

The Sewer of .alt

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 "Twin Peaks" in the big seven hierarchies, so they end up in the fertile alt.tv section of the alt. hierarchy, where they are the source of years of enjoyment to many (I feel like a commercial).

alt. is also nice because groups can be quickly created, unlike in the big seven, where it takes two months. So a group such as alt.current-events.la-quake can be created overnight in response to special situations.

alt. has become somewhat more organized in the past year. Anyone can create a new group, but anyone can also send out a removal message, and there are several alt. volunteer police who will summarily do so if the group hasn't been proposed on alt.config or if it's clearly a joke group. This has cut down on the number of "triple-word" joke groups, such as alt.french.captain.borg.borg.borg, which were first made popular by the group alt.swedish.chef.bork.bork.bork. But it isn't the big seven by a long shot, and I'd hate to see the day when it is.

The Other Hierarchies

Anybody can create a hierarchy for a specialized reason (all you have to do is persuade other sites to carry the groups), and there are often good reasons for doing so. Especially useful are hierarchies for regional groups. For instance, there are many ca. groups for discussion of California topics (for example, ca.politics). This keeps local stuff where the rest of the Net doesn't have to read it. Cities that have active Net communities often have their own hierarchies, such as sdnet. for San Diego. The same goes for universities (ucsd.) and companies.

There are other hierarchies that are intended to be more widely spread, but are limited for other reasons. Many of the BITNET mailing lists are echoed on USENET in the bit. groups. Much child education discussion goes on in the k12. groups.

A few hierarchies have made a bid for the big seven but have failed. trial. and us. both failed from lack of interest, although at this time people are trying to resurrect the us. hierarchy.

Where Do I Go?

Back to your original question—how do you know where to go for a particular subject? There are several ways.

First, your newsreader may be smart enough to find part of a group name. If I tell NN to go to group beer, for instance, it asks me if I mean alt.beer or rec.food.drink.beer. In this way I just found two groups, and if I look for brewing I'll find more.

Dave Lawrence posts "List of Active Newsgroups" and "Alternative Newsgroup Hierarchies" to news.groups and news.answers. This is the mother lode—all "official" groups (although with alt. "official" doesn't mean much), each with a short description. Get it if you can.

Your newsreader probably has a way to show you a list of all groups. This might take some digging to find. (It's :show groups all in NN.)

Next, you can look through a file your newsreader leaves in your home directory, named .newsrc or something similar. This is just a list of group names, but they might give you some hints.

You can always ask for help on the group news.groups.questions, which is just for this sort of question.


This is perhaps the most important piece of this USENET section. You can muddle through the rest, but your use of netiquette (Net etiquette—more geek hilarity) determines how you are perceived by others on the Net—and a reputation can be a very hard thing to get rid of. You may be shocked to engage in a debate and find someone dredging up a post from six months ago that you're not too proud of.

The Net doesn't have rules, per se, but it has customs that are often stronger than the force of law would be. People routinely violate U.S. laws on USENET because they consider them to be a joke—and most of the other users seem to agree, so they ignore it. But violate the USENET customs and watch out.

Of course, there comes a time when any given rule should be broken, but until you get the nuances down, try to respect the customs.

I hope I'm not being too intimidating here. USENET is a wonderful place once you're acclimated to it. You just need a little help getting over the initial growing pains, and reading this will hopefully help. I'm going to tell you some horror stories, yes, but just so you can learn from them.


If you're reading this, you're probably a newbie. That's USENET slang for "new person." It's not a bad thing to be a newbie, nor is it a hanging offense (or even something most people will look down at you for). People just treat newbies with a bit more caution, because they know that people who haven't grasped the local customs are more likely to commit a faux pas.

Even if you've been posting on your local BBS or FidoNet for 10 years, you're still a newbie. The customs are unique. Welcome to the Jungle, please obey our laws.

Newbie No More

This piece of advice is probably worth the whole price of the book if you're going to be on USENET for a while: The best way to learn the customs of USENET at absolutely no risk to yourself is just to read it without posting for six weeks.

You can watch newbies who weren't so cautious commit the same blunders that you might have done and get upbraided, just because they, unlike you, didn't know. You can see the conversational tactics that are used by the pros, when they'll press a point and when they'll back off. You also get the feel of each group—each one has its own special ambience.

The length of time you should read before posting varies according to what you feel comfortable with. Most people on USENET are actually full-time "lurkers"—they just read and don't post. Sometimes this is by choice, sometimes it's due to software or administrative limitations. But it's estimated that there are more than 100 readers of a group for every person who posts to it.

Signature Files

Most newsreaders enable you to attach a signature to every post you make. It takes the contents of the file .signature in your home directory and attaches it to the end of the post. This is intended to be used for identification purposes—perhaps your name and place of work if it's not obvious from the header. Or sometimes it's used for disclaimers.

By far, the most common use is as a small personality statement—this usually involves your name, Internet address, a favorite quote, and maybe a small picture drawn with text characters. I often identify people by their signatures, rather than by looking at the header, since they're immediately recognizable by general look.

Some people always go overboard, however, and this results in huge signatures with big ugly fonts, ASCII graphics, loads of stupid quotes, three different addresses, five phone numbers_you get the picture. Suddenly, the signature is a significant amount of information (done in wretched style) that has to be ignored every time, even as it pushes the real content of the post off the page. After seeing this a dozen times, people get irritated.

There's even a group dedicated to ragging on people with horrendous signatures, and even some standard "scoring" guidelines. You lose points for having the following in your signature:

Readers of this group (alt.fan.warlord) take great pride in their skill at tearing bad signatures apart. But here's my hint for the day: If your signature is four or fewer lines, as called for by netiquette, nobody is going to care what you put in it.

Going over four lines makes it open season. Luckily, four lines is more than enough for almost any "vital" information you'd need to put there.

Excessive Quoting

Because of the nature of the Net, it's easy to lose track of where you were in a conversation or debate. If someone just replies, "That's the stupidest thing I ever heard!" you may have a hard time determining just who they were talking about or which side they're taking. Comments need a bit of context.

For that reason, most news software "quotes" the entire previous message into your editor for you. It does this by putting a quote character, usually a >, to the left of each line of text. You are supposed to trim this message down to the bare essentials necessary for context to be established for your following comments.

A lot of people seem to be incapable of grasping this concept. In the most heinous cases, they quote pages and pages of a previous message, including the person's signature, only to add a single line comment such as "This is stupid." Please trim your quotes. It means less space spent storing redundant data, it means people can read your message quicker, which makes them happier, and it makes your comments much more understandable.

It's up to your personal preference, but I've generally found that I never need more than about four lines of text from the previous message for any point I wish to make. In responding to a complex message it's quite acceptable to quote some text, reply to it, quote some more text, reply to it, and so on. You can even quote the entire message doing this in a few cases, but since you're doing it to establish context for each of your quotes, it's considered acceptable.

Also, watch how deep the quotes go. Someone quoting your message will also quote text you quoted—that text then has a >> in front of it. Too many levels of this gets confusing and makes it more likely that someone will be misattributed.

One final caution—while your quoting doesn't have to preserve the full context of the person's message, using "selective quoting" to make it appear that someone argued a point they never argued is viewed with much the same approval as hitting a pregnant woman. You're in trouble if you do this. And if you ever actually modify the text of a quote, lordy help you_

Pyramid Schemes

Occasionally, you'll see something about "Make Money Fast," usually with the name Dave Rhodes somewhere in it. Don't Do It!

This chain letter never goes away, and since the people who post it tend to be very obnoxious about where they post it (some even post it to every single group on USENET—think about that), people are not tolerant of this at all. You'll get a few thousand upset e-mail messages that will probably shut down your machine and make your administrator less than amiable. Also, it may be illegal.

Excessive Crossposting

Earlier, I showed how to make a post go to several groups at once, which is known as crossposting. Crossposting is hardly ever necessary, and only once in a blue moon is it necessary to crosspost to more than four groups at once except for special informational USENET postings.

Newbies usually mess up on crossposting a plea for help—they're not sure where to ask for it, so they crosspost to any group that looks like it might have something to do with it. They always manage to hit a few inappropriate groups, and between the complaints about the crossposting and the alienation of those who might have helped due to the crossposting, the newbie doesn't get the question answered.

Take the time to look at a few messages in each group to see if it looks appropriate. If you find one that looks right, post to that one group asking your question. You can note that you're not 100 percent sure if you're in the right place and ask for better directions. People are usually very friendly to this type of posting. And, of course, you can ask on the group news.groups.questions where you should direct your questions.

Read the FAQ!

One day, the people of USENET noted that new users all tended to ask the same few questions. They decided to create a Frequently Asked Questions List (FAQ—the L just didn't sound good), which would present the answers to these questions, just preventing them from being asked over and over and over and over and over and over and, well_

That worked pretty well, and now many groups have FAQs. This means that if you pop up on a group and ask a question that is in the FAQ, you're going to get some very negative responses ("Read the FAQing FAQ!") If you enter a new group for the purpose of asking a question, make sure you look for a post with "FAQ" in the title. If you find any, read them first. Your answers (and answers to questions you hadn't even thought of yet) may be in there.

If you're looking for information in general, most FAQs are posted to news.answers. You can go there and browse all the beautiful FAQs.

Keep the Flaming to a Minimum

In Net parlance, a flame is a heated attack on someone or something. An extended series of exchanged flames (flames are catching, it seems) are a flamewar.

An occasional flame is usually warranted and cleans out your system, but be careful of letting it get away with you. Some people have a reputation of being much too quick to flame—even an honest mistake might earn you a litany of your mother's dating habits from this kind of person. Others have the reputation of enjoying flaming just for the sake of doing it. Actually, there's a whole group for these people (alt.flame).

If you ever want to acquire a reputation as being a cool-headed, capable debater, however, watch yourself. I find it useful to let the message sit for five minutes, then come back to it. You may find, as I do, that a nonantagonistic-appearing message is actually more damaging to the other person's case. And if you watch carefully, you can see what the Net pros have learned: how to flame with a precise acetylene torch, deftly vaporizing someone's ill-thought post with facts, style, and wit. This is much more devastating than the standard "Oh, yeah? Moron!" type of argument.

Don't Bluff

Trying to pretend you know something you don't is bound for failure on the Net much more often than you might think. There are a large number of well-informed people on the Net (some seem to be virtual information sinks on certain subjects), and chances are good that someone who knows more than you do is going to call your bluff.

This extends to less drastic claims as well—if you're going to make a claim, you had better be prepared to back it up. It's not known as the Net of a Million Lies for nothing, and most users who have been there awhile tend to be a bit skeptical. And then there are the people who actively oppose your position and have the facts to argue their side_

It's somewhat sad to see someone backing down from an ill-advised position, so be careful. And if you should ever be caught in an out-and-out falsehood, you might as well start humming a funeral march.


Looking back on that list of "Don't do this," "Beware of that" is a bit exhausting. Again, I don't want you to be afraid of USENET—the worst that will probably happen if you do screw up royally is that someone writes you a nasty letter. Remember, you can absorb all this by osmosis just by reading newsgroups for a period of time before you post to them.

USENET Miscellany

Wait, I'm not done with you yet—I have so much more to give! This section contains some random bits of advice and frequently asked questions.

Creating a New Group

This one comes up often. "Hey, there's no group for discussing indigo feebles! How do I start one?"

In this case, I doubly recommend reading both news.announce.newgroups and news.groups for a three-month period before you try to create your own group. This seems extreme, but it's a whole new level of politics, written and unwritten rules, and various subtleties.

To help, you should grab the posts "How to Create a USENET Newsgroup" and the "USENET Newsgroup Creation Companion" from news.groups. The first is the official guidelines, the second is a helper I wrote.

Basically, creating a new group boils down to this: You issue a Request for Discussion (RFD), crossposted to news.announce.newgroups, news.groups, and any interested groups. It should give the proposed name of your group, its charter, and why it should be created. Follow-up discussion will take place in news.groups.

If the discussion yields any major changes to the name or charter, you'll need to issue a second RFD explaining the changes. This repeats until a consensus is reached.

The Call for Votes (CFV) can be held 30 days after the first RFD. You should contact the USENET Volunteer Votetakers (UVV) at rdippold@qualcomm.com to have your vote run by an experienced group of neutral votetakers. The UVV will take care of the voting, which runs 22 days. At the end of this time, the votes are tallied. If your proposed group has at least 100 more YES votes regarding its creation than it has NO votes, and if there are twice as many YES votes as NO votes, then the group passes and will be created by the news.announce.newgroups moderator after five days or so.

All this is a massive oversimplification, but it gives you some idea of the work involved, and the time period (two months). You might consider whether you want an alt. hierarchy group instead (read alt.config) or if you want to start a mailing list.

How Can I Get That Person Off the Net?

Uh oh_someone called you some nasty names or said something you consider offensive. Now what? Well, now you deal with it by yourself. Among the advantages of the Net is that someone with an unpopular viewpoint can't be kicked off just because their philosophy isn't in line with what the Acceptable Opinions Squad have decided are the required ways of thinking this year. This is somewhat of a disadvantage in that some people use it as just an excuse to be rude. You're an adult—you can presumably figure out some way to deal with it, such as just ignoring the person. If you go complaining to someone's administrator just because they called you a name, you're probably going to be disappointed, not to mention mocked.

There are a few situations in which it is considered okay to contact someone's administrator: if you receive an actual threat of violence and think it's serious, or if you are clearly defrauded by said person in a transaction that was arranged on the Net. You can probably see the trend here—if there was actual (or threatened) damage that occurred in the real world, you certainly might be justified.

Recommend Some Newsgroups!

I showed you earlier how to retrieve the posting of all the newsgroups and their short descriptions. I could really send my page count through the roof by just including that here, but I'll settle for recommending a few varied ones that might interest you:


This is where all the pictures and other data are posted. You can get pictures, sounds, and music files among these groups.


This is where group creation in the alt. hierarchy is discussed.


Yes, USENET has a culture, though this group is spotty.


Getcher real live author here! Terry Pratchett, author of the sidesplitting Discworld books, chats with his fans.


This is anything you wanted to know (or didn't) about the history of computers. Some of it is even true.


Randy Beaman knew this kid who drank Pop Rocks and soda at the same time, and his head exploded! Okay, bye. Folk tales_


This shows what's where on the Internet.


This is just what it looks like—lots of quotations.


This is the RISKS digest—examining the risks involved with technology.


Do you have a computer? It's probably got its own groups under comp.sys. Even the redoubtable HP 48 calculator has its own.


This is where newsgroup creation and removal actually takes place. It's interesting to watch if you read alt.config or news.groups.


All the FAQs get posted here. It's information central.


Shows the future of the Net—a bit whiny, but sometimes interesting.


This is for the discussion of USENET group creation and is the focus of a lot of USENET politics.


This is just what it looks like. Ask away! Or at least read this for a while.


Is your newsreader up to snuff?


There's lots of information here about, like, movies.


This is the USENET oracle. It's definitely something different.


Newbies seem to like to talk politics, but be careful! This is one of the most cutthroat groups on the Net.

Watch Out for Pranks

You may take USENET utterly seriously, or you may treat is as a playground for pranks. Most people fall somewhere in between, but there are a lot of people who lean towards the latter.

If you see something that seems too strange to be true, it probably is. Check the Newsgroups header line and look at the crossposts—if it's posted to a bizarre group, chances are someone's being funny. If you post a heated response, you'll just end up looking silly.

Look carefully at the Followup-To header—a favorite of those soft in the head is to send your reply to misc.test, alt.dev.null, or some totally inappropriate group. Whenever you reply to a message, you should always get in the habit of noticing which Newsgroups your message is being sent to so you don't get caught by something like this.

This baiting of the gullible is known as "trolling" and is quite a pastime on some groups, such as alt.folklore.urban. Basically, there are subjects that have come up so often that they're beyond Frequently Asked Questions and into "Good Grief!" status. After the subject has been dormant for awhile, someone who's been on the group awhile will make a post that ostensibly asks for information or makes a claim related to the subject. It'll be a post of the type that will make all newbies immediately want to write "Geesh, what are you? Stupid?" The group oldies will, of course, obtain great entertainment value from these posts. The more insulting, the better. You've been reeled in. How do you tell a troll from someone actually saying something stupid? Often, you can't unless you've been reading the group for awhile.


Obviously, I could go on for 200 pages about USENET. But you've got more than enough information now to fortify you. I think you'll find that USENET can be quite rewarding.


After those long e-mail and USENET sections, this piece seems almost naked.

Talk is a simple utility available on many networked systems. It allows you to "converse" in real-time with someone else. Anything you type automagically appears in one-half of the screen, anything the other person types appears in the other. It's easy to use:

talk userid@domain

If that person is logged on, he or she should get a message saying that someone wants to talk, and that the person should either enter answer or talk youruserid@yourdomain to talk to you.

When you're done, press Ctrl+C to exit. The first one to do this wins.

Talk is not as convenient as just calling the person. But sometimes you don't know the other person's number, sometimes you don't have a free phone line, or perhaps the person is long distance. Talk is cheap. (Ow! Lethally bad pun there_)

Internet Relay Chat (IRC)

I'd feel guilty if I didn't tell you about this, although I can hear hundreds of system administrators yelling "No, don't!" IRC is simply live multiple-person "chat" via the keyboard. That's it. Oh yes, it's apparently more addictive than cocaine, without the benefits.

Well, maybe that's a little harsh, but you would have to see the depths to which some people have become IRC-addicted to believe it. It's amazing how such a simple concept can be so captivating.

Basic IRC Structure

First, someone sets up an IRC server. Then those who wish to access it use their IRC client software.

The IRC "universe" consists of hundreds of channels with names such as #initgame. Users join (using their client software) in a channel that interests them and are then in conversation with everyone else who is on that same channel. You can talk with everyone or direct your comments to certain individuals. This is a flexible format that allows something as free-form as a general babble to many pairs of private conversations to a game of IRC Jeopardy, which plays much like the TV show. Some channels are private.

IRC users have their own nicknames and become quite attached to them (since your reputation goes with your nickname, this is quite understandable). A nickname database, NickServ, has been set up to eliminate accidental collisions.

Getting IRC Clients

Before you can do anything you'll need an IRC client. You'll need to grab the source code appropriate for your machine and compile it. If you absolutely can't get the source code running, and can't get someone else to do it for you, you can use the IRC telnet server:

telnet bradenville.andrew.cmu.edu

This site can't handle too much of a load, so you should use it only as a last resort.

You can get the UNIX IRC client by anonymous ftp to cs.bu.edu under /irc/clients. Look to see which file the symbolic link CURRENT points to—it will be linked to the latest UNIX source code for ircII.

A PC client running under MS-DOS or Windows can anonymous ftp to cs.bu.edu and look under /irc/clients/msdos. You'll have your choice of several for DOS, or winirc for Windows.

A Mac client can anonymous ftp to cs.bu.edu and look under /irc/clients/macintosh. Grab the latest version of Homer you find there.

Connecting to a Server

Once you have your client, you need to figure out which IRC server you will be talking to. Anonymous ftp to cs.bu.edu and look under /irc/support. There should be a file named servers.940201 (the last number is the date, so that part will change). Grab this and look for a server that's close to you.

Then tell your client to connect to this server. With luck, it'll talk back to you and you'll be in the world of IRC.

Choosing Channels

Once you get on an IRC server, all commands start with a /.

/help gives you a list of commands. To get the new user help, do /help intro then /help newuser.

/list shows all the current IRC channels. It looks something like this, except that there will be a heck of a lot more channels:

*** Channel    Users  Topic

*** #wubba     3     Wherefore the wubba?

*** #hoffa     5     i know where the body is

*** #litldog   2     where oh where has he gone

/names might be more interesting. It shows who's logged on each channel and whether it's a private or public channel:

Pub: #wubba      @wubba jblow jdoe

Prv: *    marla donald ivana bill hillary

Pub: #litldog   @yakko dot

Then use /join channel to participate on channel. Here you might do a /join #wubba.

/nick nickname enables you to change to a new nickname in case your old one is too stodgy.

/msg nickname message enables you to send a private message to nickname. Use the /query nickname to enter a private conversation with nickname. Use /query to exit it.

If you get ambitious and create a channel (using /join on a nonexistent channel creates it), be sure to look at the /mode command, which lets you determine the behavior of the channel.

Need Help?

/join #Twilight_zone is where IRC operators often hang out, and some are willing to help. Just ask your question—don't announce that you need to ask a question first.

Bad Moves

Don't use someone else's nickname if you can help it—people are very protective about them.

Never type anything that someone asks you to type if you aren't sure what it does. You might find that you've just given someone else control of your client!

Don't abuse the telnet server. If you're going to IRC a lot, get your own client.

Further Info

Anonymous ftp to cs.bu.edu and go to /irc/support. There's some interesting info here. IRC also has several alt. groups dedicated to it: alt.irc.corruption, alt.irc.ircii, alt.irc.lamers, alt.irc.opers, alt.irc.questions, alt.irc.recovery, and alt.irc.undernet. The corruption group probably won't be too interesting to you now, and you don't need the recovery group yet.

Good luck, and may you never op on request.

Is That It?

Is that all there is to UNIX communications? Well, that's 99% of it ...

To review, the Internet is the largest network in the world, comprising an international network of networks. Its lifeblood is data, and much of that data consists of user to user communications. The most basic and possibly the most fundamentally useful of these communications is Internet Mail, person-to-person messages. In fact, it is so useful that its reach far exceeds the reach of Internet itself, to other service providers such as Compuserve.

Internet Mail can be extended to multiple-person mailing lists, using list servers, but for public messaging, USENET is the preferred choice. It offers public posts on thousands of different subjects, with more being offered every day. You just need to explore the waters carefully at first and make sure you don't violate any of the customs.

Those two services constitute the vast majority of personal communications on the Internet, but there are other specialized applications, such as MUDs (Multi User Dungeons), mostly for real-time conversations. Two of the most popular are Talk, for single person to single person real-time "chatting" and Internet Relay Chat (IRC), for multiple person real-time conversations.

I'm sure that you will find that communication with others is a large part of your Internet experience.

Previous Page TOC Next Page Home