Messages - A Multi-Media Mailer

In this article, Terry Gliedt continues his tour through the Andrew project—this time into a new area, multi-media mail.

Everyone wants to do mail their own way—and the same is true with messages. Messages has dozens of options you may set—so many that it provides its own interface to setting and querying these. If you select Set Options on the Other menucard, messages will present a list of the options and their current setting. I'll bet as soon as you have messages working, it won't be long before you will be poring through the options, trying them out.

Compatibility with Other Mail Readers

The designers chose to not keep the messages database compatible with that of other Unix mail readers like elm. In conventional Unix mail user agents (e.g., mail) when mail is received, it is first stored in /usr/spool/mail/$USER as a simple “flat” file. All the mail is mashed together in one physical file. It's up to the mail reader to sort these out. This works fine when the file is small, but when you have 100 pieces of multi-media mail, each 50K in size, it starts getting unwieldy and slow.

Now when you invoke your mail reader (e.g., elm), the reader shows you what is in /usr/spool/mail/$USER. When you save the mail to a folder, the mail is appended to some file in $HOME/Mail (e.g. ~/Mail/tpg in my case). Just as with the mail in /usr/spool/mail, this is also a simple file containing many logical files (pieces of mail). It will suffer even more from performance problems as you keep more and more mail around. Most mail readers allow you to create separate folders for categories of mail—but each still uses one monolithic file.

In the world where AUIS was developed, it is not unusual for one to have hundreds of pieces of mail (and large multi-media mail at that). So another, incompatible approach was taken. Messages keeps each individual piece of mail as a separate file in a folder (i.e., directory) and builds an index so it can quickly show what's in the folder. Each of these folders is kept in the directory $HOME/.MESSAGES.

The drawback to this approach is that you cannot directly switch between elm, for example, and messages. Any mail received by messages is not available in your next elm session. Similarly, mail you received in the past with elm, is not directly available in messages. However, that does not mean it cannot be done—but you must do it “manually”. I have developed some techiques to allow you to “convert” your elm mail for use in messages and vice versa. I will not describe these in detail, but rather direct you to read about it in /usr/andrew/README.ez.mail which is created when you install the auis63L?-mail package.

Printing and Previewing

Just as AUIS prints other text documents, messages will print your mail using PostScript. In this version AUIS objects all generate troff output—along with copious amounts of embedded PostScript. The troff is then processed to generate the necessary PostScript. The default print command will invoke a shell, /usr/andrew/etc/atkprint. The default preview command calls the shell /usr/andrew/etc/atkpreview. Each of these shells will invoke the groff formatter to generate the PostScript output. In atkpreview the groff output is directed into ghostview.

For More Information

A mailing list is available at (mail to for subscriptions). The newsgroup comp.soft-sys.andrew is dedicated to the discussion of AUIS. A World Wide Web home page can be found at A book, Multimedia Application Development with the Andrew Toolkit, has been published by Prentice-Hall (ISBN 0-13-036633-1). An excellent tutorial is available from the Consortium by sending mail to and asking about the manual, A User's Guide to AUIS.

Terry Gliedt ( left Big Blue last year after spending over twenty years with IBM. Although he has worked with Un*x and AUIS for over six years, he is a relative newcomer to Linux. Terry does contract programming, teaches classes in C/C++ and Unix and writes the occasional technical document.