Mail "User Agents"

# 5 Mail "User Agents"

Contents of this section

This section contains information related to "user agents", which means the software the user sees and uses. This software relies on the "transport agents" mentioned above.

## 5.1 Elm

Elm compiles, installs, and runs flawlessly under Linux up to and through Slackware 1.1.1 (gcc2.4.5, gcclib 4.4.4). For more information, see the elm sources and installation instructions.

The only thing to know is that Elm's Configure script incorrectly sets the "ranlib" variable in config.sh. The Elm Development Team has been informed of this little problem, so please don't bother them with it (again).

- (from Chip Rosenthal - chip@chinacat.unicom.com ) The easiest way to deal with this is to create a file called `config.over` at the top of you Elm source tree and include the line:

              ranlib='ranlib'

- Alternatively, you can just remember to correctly edit the line in config.sh when Configure gives you the chance to do so.
- Elm and filter need to be mode 2755 (group mail) with /usr/spool/mail mode 775 and group mail.

If you use a binary distribution, you'll need to create a /usr/local/lib/elm/elm.rc file to override the compiled-in hostname and domain information:

- replace "subdomain.domain" with your domain name replace
- "myhostname" with you un-domainized hostname replace
- "my_uucp_neighbor" with the uucp name of your upstream site

            #---------- /usr/local/lib/elm/elm.rc ------------------
            #
            # this is the unqualified hostname
            hostname = myhostname
            #
            # this is the local domain
            hostdomain = subdomain.domain
            #
            # this is the fully qualified hostname
            hostfullname = myhostname.subdomain.domain
            #
            #--------------------------------------------------------

One thing you want to be aware of is that if you have Elm compiled to be MIME-able, you need metamail installed and in your path or Elm will not be able to read MIME mail you've received. Metamail is available on thumper.bellcore.com and of course via "archie".

We have heard reports that gcc and gcclib newer than v2.4.5 and v4.4.4 respectively are rather strict and fail to compile Elm. Here's the scoop as reported by ccnp@unitrix.utr.ac.za (Neil Parker) who forwarded a posting by longyear@netcom.com (Al Longyear).

- ELM is using internal fields in the FILE structure in an effort to bypass the standards. (The _flag, _IOERR, and _IOEOF are old fields for the pre-POSIX runtime package. While POSIX doesn't say that you can't define these fields, it does not say that you _must_. Linux does not. It does say that programs should not be written to use them, even if they are in the implementation.)

               where it does         if (fp->_flag & _IOERR) ...
               change it to          if (ferror(fp)) ....

               where it does         if (fp->_flag & _IOEOF) ...
               change it to          if (feof(fp)) ...

               These are the ANSI/POSIX definitions for the same function.

- While this item is not Linux-specific, it's a nagging bug nevertheless. We've heard that Elm sometimes fails with a message that it's unable to malloc() some massive number of bytes. This has been identified as an Elm Bug. The identified workaround is to remove the post-processed global mail aliases (aliases.dir and aliases.pag).

- (from scot@catzen.gun.de (Scot W. Stevenson) ) The current metamail package requires csh for some of its scripts. Failure to have csh (or tcsh) will cause most interesting errors...

## 5.2 Mailx

There is a fine binary implementation of mailx located on the various Linux archive sites. Make sure you grab version 5.3b or later since there are security problems in v5.3a. If you're into building from sources, mailx v5.5 compiles without patching under Linux if you have `"pmake"` installed.

The only potential problem I'm aware of with the binary distribution on sunsite is that it seems to be compiled in a way that requires /usr/lib/smail rather than /usr/lib/sendmail as a transport agent. You probably need a link if you run sendmail on your system.

If anybody is still using it, I strongly recommend removing the old "edmail" stuff from SLS1.00 and replacing it with mailx.

## 5.3 Other user agents

The following also are known to run under Linux. Consult "archie" for details regarding how to find them...

- Pine - from the Univ. of Washington
- Metamail - allows MIME support
- mh - yet another way to handle mail
- deliver - file/process mail based on rules
- procmail - file/process mail based on rules
- Majordomo - manages e-mail lists
- Mserv - provide files-by-mail

Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter