Tải bản đầy đủ (.pdf) (19 trang)

Tài liệu Chapter-26-Electronic mail-clients ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 19 trang )

2Apr il 2003, 17:00:47 The Complete FreeBSD (mua.mm), page 469
26
Electronic mail:
clients
In this chapter:
• Mail, for mats
• Mail user agents
• Files,folders or
director ies?
• Replying to a
message
• Using folders
• Deleting messages
• Tagging messages
• Configur ing mutt
• Mail aliases
• Mail headers
In this chapter:
• Mail, for mats
• Mail user agents
• Files,folders or
director ies?
• Replying to a
message
• Using folders
• Deleting messages
• Tagging messages
• Configur ing mutt
• Mail aliases
• Mail headers
Electronic mail,usually called email, e-mail or simply mail,isamethod of sending


messages to other people on the Net. As with other network services, there are twoparts
to mail software:
• The part of the mail system that most users knowisthe client, the Mail User Agent,
or MUA,the program that interacts with the user and handles incoming and outgoing
mail. In this chapter we’ll look at my favourite MUA, mutt,and we’ll briefly touch
on what others are available.
• The server part is the Mail Transfer Agent,orMTA.Asthe name suggests, it is
responsible for moving mail from one system to another.We’ll look at MTAs in the
next chapter,Chapter 27, Electronic mail: servers.
Mail, formats
Email is defined by a number of Internet standards, the so-called RFCs, or Requests For
Comments.You can browse the RFCs at are the most
important ones.
• RFC 2821 is a recent update to the venerable RFC 821, which dates from the early
1980s. It defines the Simple Mail Transfer Protocol or SMTP.Itspecifies howto
send mail round the network. For most people it’snot very interesting, but it does
impose some restrictions such as the basic line length limit. Apart from this problem
(which Microsoft abuses), most mail systems adhere to SMTP.
mua.mm,v v4.12 (2003/04/02 04:07:59) 469
Mail, for mats 470
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 470
• Similarly,RFC 2822 replaces RFC 822. It defines the basic format of a mail
message. It defines the headers (To:, Cc:, Subject: and so on) and a simple body
made up of US-ASCII text, the message itself. This was fine for when it was written,
butitcan’thandle the more complexformats used nowdays, such as images, binary
files or embedded messages. It also can’thandle non-US character sets, which causes
problems in particular in countries likeRussia, Israel and Japan.
• RFC 2045, RFC 2046, RFC 2047, RFC 2048 and RFC 2049 together describe the
Multipurpose Internet Mail Extensions,better known as MIME.Theydefine howto
encode non US-ASCII text and attachments so that theycan be represented in ASCII

and hence sent by RFC 2822, and also howtodivide the single RFC 2822 body into
multiple parts using ASCII separators.
MIME is one area in which UNIX is weak. ManyUNIX users consider themselves
Real Men who don’tneed these fancytoys. This is a pity.Incountries likeGermany,
people can get by with ASCII, but that doesn’twork in Japan, Israel or Russia.
In case you’re wondering, German has sevenspecial characters Ä, Ö, Ü, ä, ö, ü and ß. ßis
lower case only.There is a national standard defining howtorepresent these characters in
US-ASCII: replace the characters with Ae, Oe, Ue, ae, oe, ue and ss respectively.
There are plenty of good MIME-aware mail readers available for UNIX. It’sagood
idea to use one. On the other hand, if your target audience typically does not use
MIME-aware mailers, you should probably avoid sending MIME messages.
Mail user agents
A mail user agent is a program that interfaces between the user and the mail system. It
allows the user to read, forward and reply to incoming mail, and to send his own mail.
Beyond that, it usually has facilities for creating and maintaining folders,where you can
keep receivedmail messages. Formost UNIX MUAs, a folder is the same thing as a file,
butsome MUAs, which we won’tdiscuss here, keep mail messages as individual files,
and the folder corresponds to a directory.
mail
The oldest MUAyou’re likely to meet is mail.It’savery basic, character-oriented
program, but nevertheless it has its advantages. You can use it in scripts to send mail.
Forexample, if you have a job running and producing copious output, where you want to
save the output, you might normally write something like:
$ longjob 2>&1 > logfile
This command runs longjob.The sequence 2>&1 redirects the error output to the
standard output, and the > writes them to the file logfile.While this is a good way to
solvethe problem, you might find that you have a lot of such jobs, or that you tend to
forget the log files and leave them cluttering up your disks. An alternative istosend
yourself mail. Youcan do this with the following command:
mua.mm,v v4.12 (2003/04/02 04:07:59)

471 Chapter 26: Electronic mail: clients
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 471
$ longjob 2>&1 | mail me
In this case, me is your user ID. When the job finishes, you get a mail message with the
output of the commands. cron (see page 151) uses this method to send you its output.
Other MUAs
mail has a number of limitations: it can’tdeal very well with long mail messages, it’s
difficult to keep an overviewoflarge quantities of mail, likemost people seem to
accumulate, and it can’thandle MIME.
Manymore sophisticated mailers have been written since mail.Some of the more
popular ones, which are also available in the Ports Collection, are:
• elm is one of the oldest full-screen mailers. Its age is showing: it has a fewannoying
problems that makeitless desirable nowthat there’sachoice.
• pine is not elm—that’swhat the acronym stands for.It’squite like elm,nonetheless.
• mutt is also similar to elm and pine.It’smycurrent favourite, and we’ll look at it in
the next section.
• exmh is built on Rand’s mh MUA. Some people likeit, but it seems relatively easy
to configure it to mutilate messages.
• xfmail is an X-based mailer,which you might prefer to the text-based mailers we’re
talking about here.
• sylpheed is a more recent X-based mailer.You may prefer it to xfmail.
Files, foldersordirectories?
There are twoschools of thought about howtostore mail:
• Traditional MUAs represent folders as files. Theystore all the messages in a folder
in that single file. This is sometimes called the mbox method. mail, elm and pine
do it this way.
• Other MUAs, including exmh, xfmail and sylpheed,represent a folder as a directory.
Each message in the folder is then a file by itself.
• mutt can use either method, but the default is the mbox method.
Which method should you use? Both have their advocates. The directory and file

approach is more robust (if you trash a file, you only lose one message, not all of them),
and it enables you to have the same message in multiple folders. On the other hand, it
also imposes a lot higher overhead. Current versions of ufs,atleast on FreeBSD, have a
default block size of 16 kB and a fragment size of 2 kB. That means that all files have a
length that is a multiple of 2 kB, and so the average waste of space is 1 kB. In addition,
each file uses an inode. If you have a lot of mail, this can add up to a lot of wasted space.
Forexample, I currently have 508,649 savedmail messages, which takeupatotal of 2.1
mua.mm,v v4.12 (2003/04/02 04:07:59)
Files,folders or directories? 472
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 472
GB, almost exactly 4 kB per message. If I stored them in a directory structure, I would
lose about another 500 MB of space, or 25%. The file system on which the messages are
stored is 9.5 GB in size and has 1.2 million inodes; nearly half of them would be used for
the mail messages.
mutt
In this section, we’ll takeadetailed look at mutt.Start it by typing in its name. Like
most UNIX mailers, mutt runs on a character-oriented terminal, including of course an
xterm.We’ll takealook into my mailbox. By default, when starting it up you get a
display likethe one shown in Figure 26-1.
Figure26-1: mutt main menu
mutt sets reverse video by default. You can change the way it displays things, however.
On page 479 we’ll see howtochange it to the style shown in one shown in Figure 26-2.
This display shows a number of things:
• The line at the top specifies the name of the file (‘‘folder’’) that contains the mail
messages (/var/mail/grog), the number of messages in the folder,and its size. It also
states the manner in which the messages are sorted: first by threads,then by date.
We’lllook at threads further down.
• The bottom line givesabrief summary of the most common commands. Each
command is a single character.You don’tneed to press Enter to execute the
command.

• The rest of the screen contains information about the messages in the folder.The first
column givesthe message a number,then come some flags:
• In the first column, we can see r next to some messages. This indicates that I
have already replied to these messages.
mua.mm,v v4.12 (2003/04/02 04:07:59)
473 Chapter 26: Electronic mail: clients
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 473
Figure26-2: mutt main menu
• In the same column, N signalizes a new message (an unread message that has
arrivedafter the last invocation of mutt finished).
• The symbol D means that the message has been marked for deletion. It won’tbe
deleted until you leave mutt or update the display with the $ command, and until
then you can undelete it with the u command
• The symbol + means that the message is addressed to me, and only to me. We’ll
see belowhow mutt decides who I am.
• The symbol T means that the message is addressed to me and other people.
• The symbol C means that the message is addressed to other people, and that I
have been copied.
• The symbol F means that the message is from me.
• The symbol * means that the message is tagged:certain operations work on all
tagged messages. We’lllook at that on page 478.
• The next column is the date (in international notation in this example, but it can be
changed).
• The next column is the name of the sender,or, ifI’m the sender,the name of the
recipient.
• The next column is the name of the recipient. This is often me, of course, but
frequently enough it’sthe name of a mailing list. You’ll notice that this is a column I
have added; it’snot in the default display.
• The next column givesthe size of the message. The format is variable: you can
specify number of lines (as in the example), or the size in kilobytes.

mua.mm,v v4.12 (2003/04/02 04:07:59)
Files,folders or directories? 474
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 474
• The last column is usually the subject. Formessages 56 to 61, it’saseries of line
drawings. This is threading,and it shows a relationship between a collection of
messages on the same topic. Message 56 was the original message in the thread,
message 57 is a reply to message 56, and so on. Messages 60 and 61 are both replies
to message 59. mutt automatically collects all messages in a thread in one place.
You’ll notice in the example that the lines are of different intensity.Inthe original, these
are different colours, and they’re a matter of personal choice; theyhighlight specific kinds
of message. Iuse different colours to highlight messages on different topics. If you’re
interested in the exact colours, see />which contains an early version of this text.
Message 52 is appears to be in reverse video. In fact, it’sinwhite on a blue background,
acolour I don’tuse for anything else. This is the cursor,which you can position either
with the cursor up and cursor down keys, or with the vi-likecommands j (move down) or
k (move up). In the default display,itisinnormal video (i.e. not reversed, or doubly
reversed). You can also move between pages with the left and right cursor commands.
Manycommands, such as r (reply) or Enter (read), operate on the message on which the
cursor is currently positioned. Forexample, if you press Enter at this point, you’ll see a
display likethat in Figure 26-3.
Figure26-3: mutt message display
Here, the display has changed to showthe contents of the message. The top line now
tells you the sender of the message, the subject, and howmuch of the message is
displayed, in this case 50%. As before, the bottom line tells you the most common
commands you might need in this context: they’re not all the same as in the menu display.
The message itself is divided into three parts: the first 6 lines are a selection of the
headers.The headers can be quite long. Theyinclude information on howthe message
got here, when it was sent, who sent it, who it was sent to, and much more. We’lllook at
them in more detail on page 482.
The headers are separated from the message body by an empty line. The first part, which

mua.mm,v v4.12 (2003/04/02 04:07:59)
475 Chapter 26: Electronic mail: clients
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 475
mutt displays in bold,isquoted text: by putting a > character before each line, the sender
has signalized that the text was written by another person, often the person to whom it is
addressed: this message is a reply,and the text is what he is replying to. Normally there
is an attribution above the text, but it’smissing in this example. We’ll see attributions
belowinthe section on replying.
If the message is longer than one screen, press SPACE to page down and - (hyphen) to
page up. In general, a 25 line display is inadequate for reading mail. On an X display,
choose as high a windowasyou can.
Replying to a message
To reply to a message, simply press r. mutt starts your favourite editor for you. How
does it knowwhich one? If you set your EDITOR environment variable to the name of
your editor,itstarts that editor; otherwise it starts vi.You can also specify it in the mutt
configuration file, which we’ll look at below.
In this case, we start emacsclient. emacsclient isn’treally an editor at all: it simply finds
an Emacs process and latches on to it. This is much faster than starting a newinstance of
Emacs:it’spractically instantaneous, whereas evenonfast modern machines, starting
Emacs causes a brief delay.Toexit the client, you use the key combination c-x c-#.
Before entering anytext, the editor screen looks likeFigure 26-4. You’ll notice that mutt
automatically ‘‘quotes’’the text. The original text started with:
>I think I now understand the problem here. Try the following patch
>and tell me if it solves the problem:
>
>--- vinumio.c 2May 2002 08:43:44 -0000 1.52.2.6
>+++ vinumio.c 19 Sep 2002 05:10:27 -0000
Tried patch. System no longer reads ad0h/ad2h, but after the second
’vinum start’, the system shows 0 drives (’vinum ld’ lists nothing.)
This message itself starts with quoted text, which indicates that it was written by

somebody else. Normally there should be a line at the top stating who wrote it, but it’s
missing here. The text from the submitter starts with Tried patch.When you reply,
however, all this text is quoted again, so what you see on the screen is the display of
Figure 26-4. Here you see that the first line attributes the text below. You’ll notice that
this reply also includes a selection of headers for the outgoing message. This can be very
convenient if you want to tailor your headers to the message you’re sending, or just to add
other recipients.
mua.mm,v v4.12 (2003/04/02 04:07:59)

×