34.18 movemail program

Rmail uses the movemail program to move mail from your inbox to your Rmail file (see Rmail Files and Inboxes). When loaded for the first time, Rmail attempts to locate the movemail program and determine its version. There are two versions of the movemail program: the GNU Mailutils version (see movemail in GNU mailutils), and an Emacs-specific version that is built and installed unless Emacs was configured --with-mailutils in effect. The two movemail versions support the same command line syntax and the same basic subset of options. However, the Mailutils version offers additional features and is more secure.

The Emacs version of movemail can retrieve mail from the usual Unix mailbox formats. Warning: Although it can also use the POP3 protocol, this is not recommended because it does not support POP3 via encrypted TLS channels.

The Mailutils version is able to handle a wide set of mailbox formats, such as plain Unix mailboxes, maildir and MH mailboxes, etc. It is able to access remote mailboxes using the POP3 or IMAP4 protocol, and can retrieve mail from them using a TLS encrypted channel. It also accepts mailbox arguments in URL form. The detailed description of mailbox URLs can be found in URL in Mailbox URL Formats. In short, a URL is:

proto://[user[:password]@]host-or-file-name[:port]

where square brackets denote optional elements.

proto

Specifies the mailbox protocol, or format to use. The exact semantics of the rest of URL elements depends on the actual value of proto (see below).

user

User name to access the remote mailbox.

password

User password to access the remote mailbox.

host-or-file-name

Hostname of the remote server for remote mailboxes or file name of a local mailbox.

port

Optional port number, if not the default for that protocol.

proto can be one of:

mbox

Usual Unix mailbox format. In this case, user, pass and port are not used, and host-or-file-name denotes the file name of the mailbox file, e.g., mbox:///var/spool/mail/smith.

mh

A local mailbox in the MH format. user, pass and port are not used. host-or-file-name denotes the name of MH folder, e.g., mh:///Mail/inbox.

maildir

A local mailbox in the maildir format. user, pass and port are not used, and host-or-file-name denotes the name of maildir mailbox, e.g., maildir:///mail/inbox.

file

Any local file in mailbox format. Its actual format is detected automatically by movemail.

pop
pops

A remote mailbox to be accessed via POP3 protocol. user specifies the remote user name to use, pass may be used to specify the user password, host-or-file-name is the name or IP address of the remote mail server to connect to, and port is the port number; e.g., pop://smith:guessme@remote.server.net:995. If the server supports it, movemail tries to use an encrypted connection—use the ‘pops’ form to require one.

imap
imaps

A remote mailbox to be accessed via IMAP4 protocol. user specifies the remote user name to use, pass may be used to specify the user password, host-or-file-name is the name or IP address of the remote mail server to connect to, and port is the port number; e.g., imap://smith:guessme@remote.server.net:993. If the server supports it, movemail tries to use an encrypted connection—use the ‘imaps’ form to require one.

Alternatively, you can specify the file name of the mailbox to use. This is equivalent to specifying the ‘file’ protocol:

/var/spool/mail/user ≡ file:///var/spool/mail/user

The variable rmail-movemail-program controls which version of movemail to use. If that is a string, it specifies the absolute file name of the movemail executable. If it is nil, Rmail searches for movemail in the directories listed in rmail-movemail-search-path, then in exec-path (see Running Shell Commands from Emacs), then in exec-directory.