Getting Started - IMAIL 1.19
Description: IMAIL 1.19

Next: Concepts, Previous: Introduction, Up: Top

## 2 Getting Started

At present, IMAIL has only a very simple mechanism for connecting to an IMAP server: it makes an unencrypted connection to the server, and logs in with a user name and a password. In the near future, we will implement CRAM-MD5 authentication (defined in RFC 2095). However, we have no plans to implement data-stream encryption for the connection.1

To use IMAIL, you must create an Edwin init file, called `~/.edwin` on unix machines or `edwin.ini` on Windows or OS/2 machines. This file contains arbitrary Scheme expressions that are evaluated in the Edwin environment when Edwin is started. In addition to any other customizations you put in this file, you must include the following expression:

         (load-option 'imail)

Next, you must tell Edwin where to find your IMAP server, by setting some variables; the expression to do this must follow the call to `load-option`. Here is an example:

         (load-option 'imail)
         (set-variable! imail-default-imap-server "imap.foo.org")

Note that this is syntactically similar to Scheme's `set!` special form, but that it modifies the value of an Edwin editor variable rather than a Scheme variable. There are several other variables that control how IMAIL connects to the server. See Multiple Folders, for a complete list. By default, IMAIL tries to connect to ‘`localhost`’ using port `143`, and to log in using the user name that you are logged in as. This is the right default if you are using stunnel on the client.

After you are finished creating the init file, you can either restart Edwin, or you can load the file using `M-x load-file`. At this point, you are ready to run IMAIL. To start IMAIL and read the mail in the ‘`inbox`’ folder on your IMAP server, type `M-x imail`.

#### Footnotes

[1] Here at MIT, we connect to our server using `stunnel` to provide end-to-end encryption. This provides connection security without the need to integrate the encryption into the client or the server.