by Ron Dippold and Fred Trimble
From its inception, the purpose of the Internet has been to facilitate communication among people. It was originally developed by the military to provide a vast distributed communications network capable of continued operation in case of a nuclear attack. Its designers wanted a distributed network to eliminate the possibility of a "vulnerable central node." They also wanted a communications protocol that would be independent of any particular physical media. Despite its military roots, it has become characterized by the general public as the "Infobahn," "Information Superhighway," and "Cyberspace." Today, some twenty years later, the benefits of the Internet are being realized by many groups of people, including secondary schools, home users, and private industry. The Internet infrastructure was originally designed to support applications such as electronic mail and file transfer. Although electronic mail is still the most popular application on the Internet, other networking hardware and protocols continue to evolve so that they can support other types of communication, including real-time audio and video.
Throughout the history of the Internet, UNIX has certainly played a major role. Most early UNIX systems provided built-in support for the Internet's main protocol: TCP/IP (Transmission Control Protocol). Therefore, this chapter covers the following topics, with an emphasis on UNIX facilities where appropriate:
|Electronic mail allows you to exchange messages with other people all over the world. Many electronic mail programs have extended features, such as the ability to attach binary files.|
|USENET||USENET is the world's largest electronic discussion forum. One of the most popular features of the Internet, it allows people all over the world to discuss topics and exchange ideas on a wide variety of subjects.|
|Talk||The talk command allows two people to exchange text messages in real-time.|
|IRC||Internet Relay Chat extends the capabilities of the "talk" command. It provides a real-time multiple person discussion forum, much like a CB radio channel.|
|Multimedia||The Internet allows real-time audio and video to be transmitted.|
|The Future||This section provides a glimpse into the future of the Internet.|
Electronic mail is the most widely used application on the Internet. It is known as an asynchronous type of communication system, because after a mail message has been sent, it resides on the recipient's computer until the recipient logs on and retrieves the message. This section focuses on many facets of e-mail, including the structure of a mail message, sending binary data (such as a graphics file) with a mail message, e-mail addressing, how messages are sent over the Internet, and common end-user mail programs.
A mail message consists of two main sections: a message header and a message body. The header contains information such as who sent the message and when it was sent. The body contains the actual message text. Some people finish their messages with an optional third part known as a "signature." Each of these mail message sections is described in detail in the following sections.
Message Headers The message header consists of several lines at the top, formatted as "keyword: value" pairs. Messages sent to a user who is located on the same local UNIX host using the mail or mailx program have a very simple structure. For example:
From smithj Thu Apr 24 00:42 EDT 1997 To: jonest Subject: Code Review Meeting Status: R Please plan on attending the code review meeting tomorrow at 10:00am.
The message header of a mail message that ends up going over the Internet, however, is much more complex. For example:
From email@example.com Thu Apr 24 08:15:01 1997 Flags: 000000000015 Received: from phones.com (phones.com [184.108.40.206]) by happy.phones.com (8.6.5/QC-BSD-2.1) via ESMTP; id IAA13973 Thu, 24 Apr 1997 08:14:59 -0800 for <firstname.lastname@example.org> Received: from linc.cis.void.edu (root@LINC.CIS.VOID.EDU [220.127.116.11]) by phones.com (8.6.5/QC-main-2.3) via ESMTP; id IAA14773 Thu, 24 Apr 1997 08:14:56 -0800 for <email@example.com> Received: from eniac.seas.void.edu (nihil@ENIAC.SEAS.VOID.EDU [18.104.22.168]) by linc.cis.void.edu (8.6.5/VOID 1.4) with ESMTP id LAA17163 for <firstname.lastname@example.org> Thu, 24 Apr 1997 11:14:45 -0500 Received: from localhost by eniac.seas.void.edu id LAA24236; Thu, 24 Apr 1997 11:14:44 -0500 From: email@example.com [B Johnson] Sender: firstname.lastname@example.org Reply-To: email@example.com,firstname.lastname@example.org Cc: group-stuff@uunet.UU.NET Cc: email@example.com Message-Id: <199302011614.LAA24236@eniac.seas.void.edu> Subject: Re: Apple IIe/IIgs Software and books for SALE... To: firstname.lastname@example.org (Ron Dippold) Date: Thu, 24 Apr 97 11:14:44 EST In-Reply-To: <CMM.email@example.com>; from "Ron Dippold" at Apr 24, 97 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
Message headers are constructed for you automatically by mail software known as "mail user agents" (MUA) and "mail transport agents" (MTA). In fact, the presence of certain items in the header, such as carbon copies and receipt notification, depend on the sophistication of the mail software itself. These components of an electronic mail system are discussed in detail in a later section. Some header information is intuitive. Other sections require some explanation.
Here's the first line from the previous example:
From firstname.lastname@example.org Thu Apr 24 08:15:01 1997
This line was added by the MTA on the local system (sendmail). It is used as a quick message summary, noting who sent the message and when. Because many mail systems store all of a user's mail messages in a single text file, such summary lines are also used to separate messages within the file. This provides a way to tell the end of one message from the start of the next. For most mail programs, 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.
The Flags field, which is specific to Berkeley mail and mailx, was also added by the local mail program. Each message can have several different statuses, such as deleted, unread, and flagged for further attention. This varies with the sophistication of the mail program.
Received: from phones.com (phones.com [22.214.171.124]) by happy.phones.com (8.6.5/QC-BSD-2.1) via ESMTP; id IAA13973 Thu, 24 Apr 1997 08:14:59 -0800 for <email@example.com>
Each system that receives mail adds its own received header on top of the message. Because this is the first such header in the message, it must indicate the last mail transfer. The machine happy.phones.com (where my mail is located) received the message from phones.com (our company gateway) on April 24, 1997. The transfer was done using sendmail 8.6.5 (although you can't tell 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 [126.96.36.199]) by phones.com (8.6.5/QC-main-2.3) via ESMTP; id IAA14773 Thu, 24 Apr 1997 08:14:56 -0800 for <firstname.lastname@example.org>
Here's the mail transfer that got the message from void.edu to my site. It's a direct connection with no intermediate hops.
Received: from eniac.seas.void.edu (nihil@ENIAC.SEAS.VOID.EDU [188.8.131.52]) by linc.cis.void.edu (8.6.5/VOID 1.4) with ESMTP id LAA17163 for <email@example.com> Thu, 24 Apr 1997 11:14:45 -0500
Here, the mail system (linc.cis) at void.edu received the mail from another system at void.edu (eniac.seas).
Received: from localhost by eniac.seas.void.edu id LAA24236; Thu, 24 Apr 1997 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 the amount of time that it took to transfer the message. 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 8 hours to the time of receipt, to get 16:14:44 and 16:14:59, respectively. The message arrived in 15 seconds!
From: firstname.lastname@example.org [B Johnson]
This is the sender of the message. The portion in parentheses is a comment. It usually contains the person's name.
Sender is the authenticated identity of the person who sent the message. This is where the sending computer tells you, as nearly as it can determine, the account that actually sent the message, regardless of what the From header says. This is useful if one person, such as a secretary, is authorized to send mail for another or if one member of a group is sending a message on behalf of 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. If the From and Sender headers are radically different, however, the mail could be a forgery.
The Reply-To header specifies who your reply should go to if you respond. Most mail software is 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. The second is if the specified 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: email@example.com
The message was also sent to group-stuff@zznet.ZZ.NET and firstname.lastname@example.org. You can choose whether to include them in your reply. This also could have been done in a single header statement:
Either form is acceptable. Headers such as From or Sender, however, should appear only once in the entire header.
Message identification is very helpful when trying to track a message for debugging purposes. It can also be used for message cancellation on USENET. 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.
Subject: Re: Apple IIe/IIgs Software and books for SALE...
This is the subject of the message. My mail program shows me a one-line summary of each message, including the From, Date, and Subject headers.
To: email@example.com (Ron Dippold)
This is who the message was sent to. Sometimes your local computer will strip off the domain (@phones.com).
Date: Thu, 24 Apr 97 11:14:44 EST
This is the date the mail was originally sent. EST is Eastern Standard Time.
In-Reply-To: <CMM.firstname.lastname@example.org>; from "Ron Dippold" at Apr 24, 97 1:00 am
This message is a reply to a message that Ron 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 information can also be useful in debugging.
Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit
MIME message format is discussed later in the chapter. Briefly, this says that the message contains only 7-bit text.
The length of the body of the message (not shown here) is 10,234 characters.
There are some other header items that might be occasionally useful for you to know:
Bcc is blind carbon copy. This is like the Cc header, except that those recipients listed in the To and Cc 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.
Encrypted: software keyhelp
This indicates that the message body is encrypted with encryption software, and the keyhelp option helps with selecting the key used to decode. Note that the header itself cannot be encrypted because it contains vital routing information.
Dates used in headers look like this:
Thu, 24 Apr 97 11:44 -500
The day of week (Thu) is optional. The time is given in 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
RFC 822, which documents the standard format for Internet text messages, contains information about the header format.
NOTE: Throughout this chapter, reference will be made to RFCs. RFC stands for Request For Comments and is the means by which the research and development community has documented the standards that form the basis of the Internet. For example, RFC 821 documents the SMTP protocol for sending mail.
The Message Body The message body is separated from the message header by a single blank line. The message body contains the actual text of the message. Here, you are free to type whatever you want to the recipient. However, there are a few recommended guidelines to follow.
Many mail systems can only handle lines of up to 65 characters. It is usually a good idea to keep the number of characters on a line less than that amount. Also, try to use a good mix of upper and lower case characters. IF YOU USE ALL UPPER CASE CHARACTERS, IT LOOKS LIKE YOU'RE SHOUTING! In addition to text, the message body sometimes contains a special character sequence known as an emoticon, such as :-). If you view this emoticon sideways, it looks like a smiley face.
NOTE: When conversing with others, our body language, facial expressions, and tone of voice provide a framework for how our words are understood. Because this is not possible in an e-mail message, special character sequences called emoticons are used to embellish the text to connote emotion. Here is a list of some emoticons you might see, along with their usual meaning:
:-) humor, laughter, friendliness
:-( sadness, anger, upset
:-$ put your money where your mouth is
:-y said with a smile
:-T keeping a straight face
:-| no expression
(:-D has a big mouth
It is considered good practice not to overuse these symbols.
Signatures Some e-mail messages conclude with an optional signature. A signature is a brief description of who sent the message, such as full name, telephone and fax numbers, and e-mail address. Some signatures try to embellish this information with a picture drawn with ASCII characters. It is considered good practice to limit your signature to five lines or less. Most modern mail programs can be configured to automatically append your signature to the end of your message.
The protocol for sending e-mail over the Internet (SMTP) allows only for the transmission of ASCII text characters. Therefore, binary files, such as audio or video files, are not directly supported. The preferred method for sending binary data is to use a mail program that supports Multi-purpose Internet Mail Extensions (MIME). This is discussed in a later section. Before the advent of MIME, a technique used to circumvent this restriction is to encode such data as ASCII text before sending it with a mailer program, such as elm or mailx. On UNIX systems, use the uuencode program to convert a binary file to ASCII text. On the receiving end, the uudecode program to convert the data back to binary. For example, the following command can be used to mail a graphics file to a remote user:
uuencode picture.tif picture.tif | mailx -s "image file" email@example.com
The first argument to uuencode is the image file that will be encoded. The second argument is the name of the file that will be created on the remote user's system when the recipient runs the uudecode program. Since uuencode writes directly to standard output, it is piped to the mailx program. The mailx program will send a message to the remote user with a subject line of image file.
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.
On the remote system, the mail recipient first saves the message to a file, for instance, mail.save. The following command converts the ASCII characters back into binary format:
In addition to the encrypted binary data, the file contains the mail header information put there by the mailx program. It is also possible that the sender added a commentary before the encrypted data. Upon examination of the encrypted file, there should appear a mail header and any commentary added by the sender. The encrypted data begins directly after the line containing the word begin, followed by UNIX file permissions and a filename. After the section with the encrypted data the word end appears on a line by itself. This information is used by the uudecode program for creating the file. In the preceding example, the following line appeared directly after the mail header:
begin 777 picture.tif
Therefore, after the uudecode program is run against the mail.save file, a file named picture.tif with file permissions 777 is created. Using the begin and end keywords, the uudecode program is usually able to distinguish between the mail text and the encrypted data. If uudecode cannot handle the file properly, you can edit the file and remove all text before the begin keyword and after the end keyword. The uudecode program should then work as expected.
TIP: The technique specified above works okay for relatively small files, but what if you want to send someone a 10 megabyte file? Add 35 percent more for encryption overhead, and you have a hefty message by any estimation. Although you usually won't run into the problem with normal messages, a few sites running really old MTAs 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 into smaller chunks.
You can do this manually, but there's a nice UNIX utility that will do the job for you: split. Just tell split the number of lines you want in each piece, and it creates a file containing the specified number of lines. The number of lines doesn't tell you the size of each file exactly, but you can experiment. We find that using 800 lines per piece on average provides a 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 of 3" mybuddy < splitsaa
mail -s "Bigfile.uue 2 of 3" mybuddy < splitsab
mail -s "Bigfile.uue 3 of 3" mybuddy < splitsac
rm bigfile.uue splits??
The split command takes as arguments the number of lines and the file to split, as well as a base name for the output files. In the above example, splits was used as the base name. 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 should probably use another method to transfer the file. The subjects with 1 of 3, 2 of 3, and 3 of 3 are just to let the receiver know the total number of pieces, and their proper sequence.
Now the receiver has to save all the messages into a big file, edit out everything except the uuencoded stuff, and run uudecode on the resulting file. It is a cumbersome process, but it works. If you do this type of transfer, consider writing a UNIX shell script to automate the uuencode splitting, mailing, and recombining of the files.
If you're on a UNIX system, uuencode, uudecode, and split should be standard. If you're using DOS or a Mac, you can obtain a copy via anonymous ftp.
If you're using DOS, point your Web browser to http://oak.oakland.edu/pub/simtelnet/msdos/decode.. From here, download the file uuexe655.zip. This is a very nice uuencode and uudecode for the PC that is actually superior to the standard UNIX version. For instance, it automatically reorders the pieces of the file if they're out of order.
If you're using a Mac, point your Web browser to http://tucows.idirect.com/mac/comp.html and download the file for UULite version 3.0. It's a very full-featured uuencoder for the Mac.
For any computer for which you have a C compiler available, you can get the source code for uuencode.c and uudecode.c by pointing your Web browser to http://oak.oakland.edu/pub/misc/unix. 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.
Mail programs such as mailx are also discussed in more detail later in the chapter.
Addressing Remote Systems To send a message over the Internet, you need to specify a specially formatted Internet address. It is composed of two major sections separated by an @ sign. The part of the address to the left of the @ sign is the Internet account that will receive the mail message. This is usually the login name of the mail recipient. The part of the address to the right of the @ sign is known as the domain name. It uniquely identifies a host on the Internet. All domain names on the Internet comprise the Domain Name System, which is a hierarchy that divides the Internet into logical groups (domains). The domain is read from right to left and specifies a series of progressively smaller logical domain names. Each part of the domain name is separated with a period. For example, note the following Internet address:
The rightmost portion of the domain, .com, indicates that this is a commercial site. The following list shows the most popular domains for the United States:
Outside of the United States, sites can be registered to .com, .net, and .org. In addition, the two-letter ISO country code can also be used. For example, "ca" for Canada, "uk" for the United Kingdom, and so on.
To the left of the highest level domain name (edu, org, and so on) can appear any number of logical subdomains. These are used to specify, in greater detail, the name of the host where the mail recipient can be found. By Internet convention, capitalization in the domain name is ignored. Therefore, the following Internet addresses are equivalent: ccarter@Minn.com, ccarter@MINN.com, and ccarter@MINN.COM). Most modern mail software ignores case in the username portion of the address for consistency. However, this is not a requirement. Therefore, it is considered good practice to preserve case for the username, just in case the recipient's system is using older mail software.
An older type of addressing scheme is known as a UUCP bang-path address (bang is computer jargon for an exclamation point). It is unlikely that you will see an address in this format, though, and is mentioned here for historical reasons. In this type of scheme, you must indicate each system you want the mail to pass through. For example, note the following address for user katherine:
This indicates that you want the mail to pass through systems named comp01, comp02, and comp03. Once the message has been delivered to comp03, it will be delivered to katherine.
How Messages Are Routed Over the Internet Before an Internet address in username@domain format can be used for transmission, it must be converted into an IP address. An IP address consists of four numbers, separated by dots, which uniquely identify a host on the Internet. For example, "184.108.40.206" is an example of an IP address. Translating an Internet address to an IP address is the province of systems on the Internet known as name servers.
When a mail message is sent over the Internet, it is sent as a stream of packets, each containing a portion of the message. Each packet also contains the IP address of the destination. The packets are sent over the Internet using the IP protocol. Specialized networking systems on the Internet, known as routers, examine the IP address in each packet, and route it to the appropriate host. Many factors, such as network traffic volume, on various Internet backbones are taken into consideration in order to determine the best possible path. In fact, packets from the same mail message may take different routes. All packets are combined in the correct order on the receiving host using the TCP protocol.
Sending Mail to Other Networks In addition to sending e-mail over the Internet, it is possible to send mail to other networks, such as online services.
Internet E-Mail Gateways 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 many 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! Well, not exactly.
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 an anachronism as punch cards, but because of the company's current investment, it isn't going to change them. 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.
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, including the @ sign. Since 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, 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:
NOTE: The ! is replaced with because computer users like short names, and refer to an exclamation point as a 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 "CompuServe" section later in this chapter.
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 "CompuServe" section and see how to translate the ID "From Internet." Then check the "WWIVNet" section 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.
To Internet: There's no need to do anything special; just use the regular Internet format.
To Others: America Online lets you use special abbreviated domains for mail to AppleLink, CompuServe, or GEnie. Send your mail to userid@applelink, userid@cis, or userid@genie, respectively.
AT&T Mail 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.
BIX BIX is the Byte magazine Information eXchange, a commercial service oriented toward techies and/or Byte magazine readers. It's been bought by Delphi, but still operates as a separate source.
From Internet: Use standard Internet addressing:
To Internet: You'll need to use the Internet Services menu option from the main menu, then use standard Internet addressing:
CompuServe 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. Because Internet dislikes commas in addresses, you need to change the comma to a period:
To Internet: You need to add a prefix to the standard Internet addressing:
Delphi Delphi was the first of the large commercial services to really embrace Internet. It looks like any standard Internet site as far as Internet Mail is concerned:
From Internet: Use the following addressing:
To Internet: There's no need to do anything special; just use the regular Internet format:
EasyLink This is a set of commercial Internet services from AT&T.
For more information on AT&T's EasyLink, you can contact them at http://www.att.com/easycommerce/easylink/mail.html.
Envoy-100 This is Telecom Canada's commercial service with X.400 gatewaying.
From Internet: Use the following addressing:
Remember that we told you the bang-path format is almost obsolete? That's not true here yet.
To Internet: Brace yourself--you need to use the following addressing:
(a) replaces @ because X.400 doesn't like the @ character. For other special X.400 characters, see the "X.400 Addressing" section.
For more information on Envoy-100, contact http://library.usask.ca/~scottp/envoy.html.
FidoNet 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 8,000 or 16,000 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 non-alphanumeric characters (such as spaces) with periods (.).
To Internet: Use standard Internet addressing with a suffix:
userid@userid ON gateway
The gateway is a special FidoNet site that acts as a gateway to Internet. You can use 1:1/31 unless you find a better one.
Example: firstname.lastname@example.org ON 1:1/31
GEnie GEnie is General Electric's commercial information service.
From Internet: Use standard Internet addressing:
To Internet: Use standard Internet addressing with a suffix:
Gold 400 Gold 400 is British Telecom's commercial X.400 system.
From Internet: Use the following addressing:
You'll need to have the recipient tell you his or her userid, org_unit (organization unit), org (organization), and prmd (private mail domain).
To Internet: Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses, but here's the format:
Example: /DD.RFC-822=bsmith(a)wubba.edu/O=uknet/PRMD=uk.ac/ADMD=gold 400/C=GB
KeyLink 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.
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 - <userid(a)domain>")
name isn't actually used for delivery, just as a comment.
Example: (C:au,A:telememo,P:oz.au,"RFC-822":"Bubba Smith - <bsmith(a)wubba.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:
If you know there is only one J Jones with an account at MCI Mail, you can send mail to
where F is the first initial and Last is the last name. Or, if you know there is only one Jim Jones you can send mail to
where First is the first name and Last is the last name. Note the underscore between them.
To Internet: When MCI prompts you with To: enter
name isn't actually used for mail delivery, but you can put the person's real name here. MCI then prompts you with EMS:. Respond with
Then MCI asks for Mbx: and here you can enter the real Internet address:
Prodigy Prodigy is a large commercial service, Prodigy Information Services (jointly developed by Sears and IBM).
From Internet: Use standard Internet addressing:
To Internet: When online, Jump to ABOUT MAIL MANAGER and proceed from there.
SprintMail Hmm... AT&T and MCI have commercial mail services. Sprint has to have one, if only for the principle of the matter. Actually, to be fair, Sprint has always been one of the more network-oriented phone companies. You may have used their Telenet network.
From Internet: Use this addressing:
first and last are the recipient's first and last names, of course, and organization is the recipient's SprintMail organization name.
To Internet: Use this addressing:
Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses.
Example: C:USA,A:TELEMAIL,P:INTERNET,"RFC-822":<bsmith(a)wubba.edu>) DEL
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.
There are many places on the World Wide Web that keep track of people's names and their corresponding e-mail addresses. There also exist many sites that provide a nice "front end" to these databases, allowing you to search for someone's e-mail address.
One such site is http://www.four11.com. It allows you to narrow your search based on geographic regions, such as country and state. It also has a handy "smart name" feature, that will expand a search for certain variations in a name (for instance, Robert = Bob). It currently contains over 6.5 million listings. Other worthwhile sites include http://www.iaf.net and www.bigfoot.com. Finally, be sure to check out http://www.starthere.com/index.html. It has links and descriptions of many sites which, in turn, do the actual e-mail address searches on the Web.
To find someone in the communications field, try RPI's address server. Send mail to Internet address email@example.com with help as the body of the message.
UNINNETT of Norway maintains an X.500 address registry service. Send mail to Internet address firstname.lastname@example.org with help as the body of the message.
PSI runs an X.500 service at Internet address email@example.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 firstname.lastname@example.org. In the body of the message, put this:
send usenet-addresses/key1 key2 key...
The keys should include all the words you think might appear in the address, usually parts of the person's name. In many cases you will use only key1. The keys are case insensitive.
You can try the following:
to return several entries. The server will return only 40 matches, so if your keys are overly general (Smith) you will need to give more keys, such as a first name, to narrow the search.
You can do several searches at once by placing several send usenet-addresses/keys lines in the message.
The business card of the 1990s 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.
How do you give your address on your business card? We'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 give it away.
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 email@example.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 firstname.lastname@example.org conversion, and they haven't all read this book. Of course, this assumes that you want non-CompuServe people sending you mail.
There are three main components involved in sending mail. First there's the link level transport layer. Directly above the transport layer is the mail transport agent (MTA). This layer is responsible for the movement and delivery of mail messages. An MTA has several components, including routing mechanisms, a local delivery agent, and a remote delivery agent. The MTA for most UNIX systems is the sendmail program. An MTA that takes liberties in modifying the contents of a message is known as a hostile MTA. Finally, there's the mail user agent (MUA) that provides the user interface. It allows you to read, send, and otherwise manipulate mail messages. This is what people usually mean when they talk about a mail program.
There are many mail programs from which to choose. The next section 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 to send 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 mail program summarizes your messages like this:
FA 1) 14-Feb bfarve Re: Congratulations! (2457 chars) F 2) 15-Feb broth requirements.doc (1/1) (17464 chars) F 4) 18-Feb dgreen Re: Sign Chester (2576 chars) F D 5) 18-Feb clinton@whiteho Re: Overnight Stay (13786 chars) FA 6) 19-Feb Dwayne Rudd Re: thank you (1451 chars) U 7) 21-Feb Eddie Lepman noise (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), the 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 for character-based interfaces, or "point and click" for graphical user interfaces. 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 messages 3, 6, 8, and 10 through 12."
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 to use 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 email@example.com. The mail program turns the alias into the full name.
Common UNIX Mail Programs There are dozens of mail programs available for UNIX systems. This chapter covers the most popular ones, including mail, mailx, elm, and PINE.
mail (Berkeley Mail) The mail program is a simple mail user agent that has its roots in the BSD (Berkeley Software Distribution) version of UNIX. It is sometimes referred to as Berkeley Mail. This program is minimal in both functionality and presentation, and is still in use at a few sites.
To send a message, type mail, followed by one or more user addresses (local or remote). For example, the following command will send mail to two different users:
mail ccarter jrandle
On the next line, start typing in the message. When you have finished, type a . or control-d on a line by itself to indicate that you are finished typing. The mail transport agent then delivers the message(s). For convenience, you can put the message text in a file and send it with the following one-line command:
mail ccarter jrandle < file
To read incoming mail, simply type in the command mail. Each mail message will be printed (last-in first-out order), followed by a question mark command prompt. To save the message, including the header, type s filename. To save the message without the header, type w filename. Use the d command to delete the message. Following is a summary of all the commands recognized:
q quit x exit without changing mail p print s [file] save (default mbox) w [file] same without header - print previous d delete + next (no delete) m user mail to user ! cmd execute cmd
See the manual page for mail(1) for more details.
TIP: Every time you log in to your UNIX system, you can customize your environment to inform you that you have mail waiting to be read. Both the mail and mailx programs can be invoked with the -e option. It returns a 0 if there is mail waiting to be read. It returns a 1 if there is no mail. Bourne and Korn shell users can put the following code in their .profile file:
if [ -f /bin/mail ]
if mail -e # notify if mail.
echo "You have mail."
A similar statement can be put in the .login file for C shell users. The C shell also allows you to be notified when new mail arrives while you are logged on. For example, the following statement in the .cshrc file checks for new mail every 60 seconds and prints the message "You have new mail." when it arrives. A utility called notify exists for some UNIX platforms that provides similar functionality, if you are not using the C shell.
The mailx command is an extended version of the Berkeley mail command. To send a mail message, type mailx followed by a list of local and/or remote users. For example:
mailx ccarter jrandle
Before typing the text for the message, your are prompted for a subject. You can type a one-line description for the subject, or simply type a carriage return to continue. After that, type in the text for the message, just like the mail command. You can also send mail by redirecting standard input from a file, as in the previous example for mail.
The mailx command provides some extended features for entering text into the message. For example, type ~v on a line by itself, and it will bring up the vi editor. When you are done composing the message within vi, type ESC and ZZ to get out of the editor, and you will go right back to the mailx command. This feature is available on Berkeley Mail.
Another useful feature is to import the contents of a file into the message body. Type ~r filename, and a line appears showing the filename, along with the number of lines and characters in the file. The following example shows how to use this option to import the results of a command (uuencode) into a mail message. This feature is available on Berkeley Mail as well.
$ mailx trimblef Subject: tif file Here is the tif file that I promised you. ~r !uuencode picture.tif picture.tif "uuencode picture.tif picture.tif" 368/22606 . EOT $
The following set of commands shows how the mail recipient can save and uudecode the contents of the file:
$ mailx mailx Revision: 70.7 Date: 92/04/16 15:39:44 Type ? for help. "/usr/mail/trimblef": 1 message 1 new >N 1 trimblef Sun Apr 27 14:36 376/22723 tif file ? s file.tif "file.tif" [New file] 376/22723 ? q $ uudecode file.tif $ ls -l total 260 -rw-rw-rw- 1 trimblef users 22733 Apr 27 14:38 file.tif -rwxrwxrwx 1 trimblef users 16384 Apr 27 14:40 picture.tif $
At the question mark prompt, the command s file.tif was used to save the contents of the message, which is the uuencoded tif file. After running the uudecode program, the picture.tif file is created.
The preceding example also illustrates how to read mail. Simply type mailx, and the message header is displayed for each message in your mail box. The first field indicates the status of the message (N for new messages and U for unread messages). The second field is the message number in the queue. The third field is the address of the sender. The next field is the date the message was received. Finally, the last field indicates the number of lines/characters in the message. At the question mark prompt, you can type p to print the next message, s filename to save the contents to a file, or n to read the next message. If you want to respond to the sender from within the mailx program, type r.
NOTE: On Ultrix, HP-UX, and AIX systems, the r command is used to reply to everyone in the "To:" and "CC:" sections of the header, and R is used to reply to the sender only. However, on SunOS, the reverse occurs. Read the manual page to clarify the behavior on your system.
For a complete list of commands, see the manual page for mailx.
The mailx environment can also be customized. When the mailx command is invoked, it first executes commands in a global configuration file named /usr/lib/mailx/mailx.rc. Here are the contents of a typical mailx.rc file:
set asksub set dot set crt=23 set PAGER=more
The asksub option tells the mailx program to prompt the user for a subject line if the -s option is not specified when sending mail. The dot option allows a user to type a . on a line by itself to end a message, just like the mail command. The crt option specifies the number of lines to display from a message to pipe to the program specified in the PAGER setting. In the above example, 23 lines of output at a time will be sent to the more command. After reading the global configuration file, the mailx command reads the user's local configuration file in $HOME/.mailrc. The most common types of entries in a local configuration file are display options and defining user aliases. The complete set of configuration options is documented in the manual page for mailx.
TIP: Some UNIX systems have a very useful program called vacation that allows you to respond to e-mail automatically with a pre-defined message. This is useful when you do not intend to respond to e-mail for an extended period of time, hence the program name. The program sends mail to each person you specify in the vacation command. The vacation command was intended to be put in the $HOME/.forward file. Another good use of the vacation program is to forward all of your mail to another e-mail address, while sending a message back to the sender indicating your new e-mail address. The following commands can be used to set up the vacation command to respond to your e-mail:
$ cd $HOME
$ rm .forward
$ vacation -I
$ vi .forward
\username, "| vacation username"
$ vi .vacation.msg
I'll be out of the office until 5/20/97 ...
When you are able to respond to e-mail and want to disable forwarding, simply remove the .forward file. It is a good idea to test this command to make sure it is in proper working order. See the manual page for the vacation(1) command for details.
elm In contrast to the mail and mailx programs, elm provides a full-screen and menu-driven interface. 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. If you like printed manuals, it comes with over a hundred pages of documentation in PostScript format.
The elm program is probably not standard on your system, so you'll have to get it yourself. Fortunately, it is available via anonymous ftp it from ftp://ftp.uu.net under /networking/mail/elm, or from ftp://wuarchive.wustl.edu under /packages/mail/elm. The packed source code is about a megabyte. In order to install the package, you'll have to compile it and answer a few system configuration questions.
The menu displayed by elm appears as follows:
Mailbox is '/usr/mail/trimblef' with 3 message(s) [Elm revision: 70.85] 1 Apr 27 trimblef (9) Project status N 2 Apr 27 trimblef (10) Flyers tickets N 3 Apr 27 trimblef (10) Going away party You can use any of the following commands by pressing the first character; D)elete or U)ndelete mail, M)ail a message, R)eply or F)orward mail, Q)uit To read a message, press <return>. j = move down, k = move up, ? = help Command:
Messages are displayed in a format similar to mailx. In order to access help, 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 as 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.
PINE Another mail program available for UNIX systems is PINE. PINE stands for Program for Internet News and E-mail (Early in its history, some referred to PINE as Pine Is Not Elm, since the original source code for elm was used as a starting point!). It was developed at the University of Washington with naive users in mind. These users could navigate the program without fear of making mistakes. Along with a forgiving user interface, it contains a number of options for sophisticated users too.
PINE's's user interface is very similar to Elm's. However, 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. 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.
Pre-compiled versions of PINE are available for certain UNIX platforms. You can anonymous ftp to ftp://ftp.cac.washington.edu and look in the /mail directory. Pre-compiled 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-bin subdirectory under the pine directory. If not, you'll need to compile your own version. The source code is available in the pine.tar.Z file.
To customize PINE's behavior, 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 UNIX 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 that 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 the post office protocol POP3. This protocol enables 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. (We're 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 available. 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.
Eudora 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 we could ask for is a native OS/2 versionÉ
You can download a copy of Eudora Lite software for Macintosh and Windows platforms by pointing your Web browser at http://www.eudora.com/freeware. To use Eudora Lite, you must have a mail account on a POP server to receive mail, and access to an SMTP server to send mail.
Eudora Pro Mail is sold in a variety of pricing plans, starting at $89.00 for a single user license. Check out the QualComm website at http://www.qualcomm.com for more information, or call 1-800-2-Eudora.
Pegasus Mail Pegasus Mail runs on Novell and supports MHS 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 (Ron couldn't give up QEdit), you can define your own external editor.
To find all the versions and add-on utilities, you can access the Web site http://risc.ua.edu/pub/network/pegasus. The software is free! However, there is a charge for printed documentation. Please see the Web site http://risc.ua.edu/pub/network/pegasus/FAQs/manuals.faq for more information. You can contact David Harris by fax in New Zealand at (+64) 3 453-6612.
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 IMAP and SMTP. For more information on PINE, see the "Common UNIX Mail Programs" section where the UNIX version is discussed.
To get it, anonymous ftp to ftp://ftp.cac.washington.edu and look in the /mail/pine/pcpine directory. Grab the file that's appropriate for your networking software: 32-bit Windows and NT (pcp_32.zip), 16-bit Windows version 3.x (pcp_w16.zip), FTP Inc's PC-TCP (pcp_pct.zip), Novell's LAN Workplace for DOS (pcp_lwp.zip), Sun's PC-NFS (pcp_pcn.zip),and the WATTCP/Packet Driver (pcp_wat.zip). It should be noted that the Winsock versions are not complete Windows application, with a detailed graphical user interface (GUI). The interface is similar to the UNIX and DOS interfaces with a modest GUI.
Simeon Simeon, formerly known as ECSMail, is impressive for its wide range of support. It includes not only a mail client, but a mail transport and handling service known as Simeon MessageStore, so you can build a complete mail system. It includes a number of features, including sharing of user documents, address books, and folders, as well as cross-platform compatibility and Kerberos and PGP security options. The server currently runs in Solaris, AIX, IRIX, HP/UX, Digital UNIX, SunOS, and Linux environments. The client is available on Windows, Macintosh, and UNIX environents. We're talking enterprise-wide solution here, if you're into that level of standardization.
For more information, visit ESYS Corporation at http://www.esys.com.
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.
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.
Clutter 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 un-subscribe from the group, so you don't send your un-subscribe 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. For example, 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.
LISTSERV Sites 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. We suggest you use firstname.lastname@example.org. Others include email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com, LISTSERV@PSUVM.PSU.EDU, and LISTSERV@SJSUVM1.SJSU.EDU.
Commands to these sites are simple. You can give a new instruction on each line of the body if you like, although generally most of your requests will consist of a single line.
To start with, try sending mail to firstname.lastname@example.org with only the text help in the body of the message (the subject doesn't matter). You should get back a list of valid commands. Probably the most interesting for you will be listserv refcard, which returns a reference card and lists global, which returns a big list of all known mailing lists on many 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 un-subscribe 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:
SET LISTNAME DIGEST
To get each piece as it is sent, use this:
SET LISTNAME MAIL
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 un-subscribing 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.
We're 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.
We get literally hundreds of messages a day, and we would go insane if we 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, Ron subscribes to several mailing lists. He routes messages from each of these into a separate mailbox for reading at his leisure. He has 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 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://ftp.informatik.rwth-aachen.de as /pub/packages/procmail.
deliver Although procmail is the king of the hill for mail filter programs, we 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.
We found deliver by anonymous ftp at sunsite.unc.edu as ftp://sunsite.unc.edu/pub/Linux/distributions/slackware/contrib/deliver.tgz .
mailagent mailagent is 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. We would suggest this if you know perl. Anonymous ftp to ftp://ftp.foretune.co.jp and get /pub/network/mail/mailagent .
elm elm comes with a support program named filter, which does mail filtering.
As described in the introduction, USENET is the world's largest electronic discussion forum. One of the most popular features of the Internet, it allows people all over the world to discuss topics and exchange ideas on a wide variety of subjects.
One way to describe USENET is in terms of e-mail. 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 20,000 mailboxes. This is analogous to how USENET works.
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 (also known as "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.
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.
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 Is Too Big USENET comprises gigabytes of new posts a day and thousands of groups. 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 Messages USENET messages are much like the Internet mail messages described earlier in 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.
We 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. We'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:
Unlike traditional bulletin board systems, each post can go in multiple groups! If we do this:
my post will appear in both groups. This is known as crossposting. While you should know it is possible, you shouldn't actually do this until you've looked around a while, because frivolous crossposting is frowned on.
In fact, there's another header that can be used to send any replies back to a specific group. For instance, you might make a wide informational post to several groups, but specify that the discussion (if any) should be only in a single group. This is the Followup-To header. Together, the headers look like this:
Newsgroups: rec.arts.comics.misc,rec.arts.comics.strips, rec.arts.comics.animation Followup-To: rec.arts.comics.animation
Remember from the e-mail header discussion that one header can spread over several lines, as long as succeeding lines are indented. That's what you did to split Newsgroups over two lines. All replies to the post will go to rec.arts.comics.animation, unless the person replying overrides that.
Crossposting can be abused, but more on that later.
Threads 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. 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 we'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 like rn. Now that we've gotten good at determining which threads look promising and which don't, we can read USENET literally 100 times faster than I could before. we'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 the purpose of a kill file. 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?" We would say that any newsreader that has the following features is a contender:
The rest is just gravy, although we're 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 is 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 even has 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. TIN happens to have the largest number of UNIX readers at this time. They meet or exceed the criteria given. You can also read the USENET group news.software.readers for the latest information.
Netscape The Netscape Web browser provides facilities for tracking, replying to, and initiating user group postings. To access a particular news group, invoke the "File" and "Open Location" menu items, and enter the URL for the news group. The URL for a news group consists of the word news, followed by a colon (:) and the name of the group. For example, to access the Oracle database news group, you would enter news:comp.databases.oracle. You can even use an asterisk (*) to display all items at a particular level in the hierarchy. For example, the URL news:comp.databases.* would list all database discussion groups.
When you have opened a particular group, a set of command buttons appear that perform some common Usenet functions. For example, buttons are available to subscribe/unsubscribe to groups, as well as initiate and receive postings.
When you subscribe to a newsgroup, the entry is maintained for future use by the Netscape software. The list of all of your newsgroups can be accessed by selecting the "Directory" and "Go To Newsgroups" menu options.
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 off-line, you can use an off-line reader to do your USENET processing off-line. 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.
There are literally thousands of newsgroups in which you can participate. This section helps you find the groups in which you are interested.
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 eight major hierarchies, one anarchic hierarchy, and a bunch of smaller, less important hierarchies.
The Big Eight Hierarchies The big eight hierarchies are the following:
|comp.||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.|
|misc.||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..|
|news.||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.|
|rec.||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.|
|sci.||Science. This is where the math and physics types hang out. Medical, too, such as sci.med.radiology.|
|soc.||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.|
|talk.||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.|
|humanities.||Literature and fine arts. This hierarchy contains a wealth of discussion regarding music,philosophy, and fine art. For example, see humanities.lit.author.shakespeare.|
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 eight 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 eight 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 eight groups. For instance, one group in the alt. hierarchy is alt.elvis.sightings. 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.
We consider that a shame, because alt. is also a haven for groups that can't find a home in the big eight 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 eight 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 (we feel like a commercial).
alt. is also nice because groups can be quickly created, unlike in the big eight, 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 recent years. 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 eight by a long shot, and we'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 eight 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 percieved by others on the Net--and a reputation can be a very hard thing lose. You may be shocked to engage in a debate and find someone dredging up a post that you submitted six months ago.
Newbie 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 The best way to learn the customs of USENET is just to read it without posting for six weeks. You also get the feel of each group--each one has its own special ambiance.
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. We often identify people by their signatures, rather than by looking at the header, since they're immediately recognizable by general look.
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