The operating system places incoming mail for you in a file that we
call your inbox. When you start up Rmail, it runs a C program
called movemail
to copy the new messages from your inbox into
your primary Rmail file, which also contains other messages saved from
previous Rmail sessions. It is in this file that you actually read the
mail with Rmail. This operation is called getting new mail. You
can get new mail at any time in Rmail by typing g.
The variable rmail-primary-inbox-list
contains a list of the
files which are inboxes for your primary Rmail file. If you don't set
this variable explicitly, it is initialized from the MAIL
environment variable, or, as a last resort, set to nil
, which
means to use the default inbox. The default inbox is
`/var/mail/username', `/usr/spool/mail/username',
or `/usr/mail/username', depending on your operating system.
You can specify the inbox file(s) for any Rmail file with the command
set-rmail-inbox-list
; see section Multiple Rmail Files.
Some sites use a method called POP for accessing users' inbox data
instead of storing the data in inbox files. movemail
can work
with POP if you compile it with the macro MAIL_USE_POP
defined,
and then install it setuid to root
. It is safe to install
movemail
in this way. Note: movemail
only works with POP3,
not with older versions of POP.
Assuming you have compiled and installed movemail
appropriately, you can specify a POP inbox with a "file name" of the
form `po:username'. movemail
handles such a name by
opening a connection to the POP server. The MAILHOST
environment
variable specifies the machine to look for the server on.
Accessing mail via POP may require a password. If the variable
rmail-pop-password
is non-nil
, it specifies the password
to use for POP. Alternatively, if rmail-pop-password-required
is
non-nil
, then Rmail asks you for the password to use.
There are two reasons for having separate Rmail files and inboxes.
Rmail was written to use Babyl format as its internal format. Since then, we have recognized that the usual inbox format on Unix and GNU systems is adequate for the job, and we plan to change Rmail to use that as its internal format. However, the Rmail file will still be separate from the inbox file, even on systems where their format is the same.
When getting new mail, Rmail first copies the new mail from the inbox file to the Rmail file; then it saves the Rmail file; then it truncates the inbox file. This way, a system crash may cause duplication of mail between the inbox and the Rmail file, but cannot lose mail.
When movemail
copies mail from an inbox in the system's mailer
directory, it actually puts it in an intermediate file
`~/.newmail-inboxname'. Once it finishes, Rmail reads that
file, merges the new mail, saves the Rmail file, and only then deletes
the intermediate file. If there is a crash at the wrong time, this file
continues to exist and Rmail will use it again the next time it gets new
mail from that inbox.