# Testing the IMAP Server

To test the IMAP server, reboot and perform the following steps (all of these samples use "`foobar`" as the IMAP server name). A list of answers to common installation problems is maintained in http://www.cyrusimap.org/mediawiki/index.php/FAQ#Cyrus_IMAP_Questions.

1. From your normal account, telnet to the IMAP port on the server you're setting up:

          telnet foobar imap

   If your server is running, you'll get the following message:

          Trying 128.2.232.95...
          Connected to foobar.andrew.cmu.edu.
          Escape character is '^]'.
          * OK foobar.andrew.cmu.edu Cyrus IMAP4 v2.0.0 server ready

   Any message other than one starting with "`* OK`" means there is a problem. To terminate the connection, type "`. logout`".

   Naturally the version number should match the version you just installed.

2. Use "`imtest`" to test logging in with plaintext passwords:

          /usr/local/bin/imtest -m login foobar

   If you want to specify a different user, do:

          /usr/local/bin/imtest -m login -a USER foobar

   If your server is running, you'll get the following message:

          % /usr/local/bin/imtest -m login foobar
          S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE] mail1.andrew.com Cyrus IMAP 3.8.3 server ready
          C: C01 CAPABILITY
          S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL ANNOTATE-EXPERIMENT-1 BINARY CATENATE CHILDREN CONDSTORE CREATE-SPECIAL-USE ESEARCH ESORT LIST-EXTENDED LIST-MYRIGHTS LIST-STATUS MAILBOX-REFERRALS METADATA MOVE MULTIAPPEND MULTISEARCH NAMESPACE OBJECTID QRESYNC QUOTA RIGHTS=kxten SAVEDATE SEARCH=FUZZY SEARCHRES SORT SORT=DISPLAY SPECIAL-USE STATUS=SIZE THREAD=ORDEREDSUBJECT THREAD=REFERENCES UIDPLUS UNSELECT URL-PARTIAL URLAUTH URLAUTH=BINARY WITHIN DIGEST=SHA1 LIST-METADATA NO_ATOMIC_RENAME SCAN SORT=MODSEQ SORT=UID THREAD=REFS X-CREATEDMODSEQ X-REPLICATION X-SIEVE-MAILBOX X-REPLICATION-ARCHIVE XLIST XMOVE AUTH=PLAIN AUTH=GSSAPI AUTH=GS2-KRB5 AUTH=GS2-IAKERB SASL-IR XCONVERSATIONS COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE APPENDLIMIT=2147483647
          S: C01 OK Completed
          Password:
          + go ahead
          L01 OK User logged in
          Authenticated.
          Security strength factor: 0

   Any message other than one starting with a "`L01 OK`" means there is a problem. If the test fails, a more specific error message should be written through `syslog` to the server log. To terminate the connection, type "`. logout`".

3. You should now test the server with each of the various authentication mechanisms you have installed. The supported mechanisms are listed in the CAPABILITY line:

         * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL ANNOTATE-EXPERIMENT-1
         BINARY CATENATE CHILDREN CONDSTORE CREATE-SPECIAL-USE ESEARCH ESORT
         LIST-EXTENDED LIST-MYRIGHTS LIST-STATUS MAILBOX-REFERRALS METADATA
         MOVE MULTIAPPEND MULTISEARCH NAMESPACE OBJECTID QRESYNC QUOTA
         RIGHTS=kxten SAVEDATE SEARCH=FUZZY SEARCHRES SORT SORT=DISPLAY
         SPECIAL-USE STATUS=SIZE THREAD=ORDEREDSUBJECT THREAD=REFERENCES
         UIDPLUS UNSELECT URL-PARTIAL URLAUTH URLAUTH=BINARY WITHIN
         DIGEST=SHA1 LIST-METADATA NO_ATOMIC_RENAME SCAN SORT=MODSEQ SORT=UID
         THREAD=REFS X-CREATEDMODSEQ X-REPLICATION X-SIEVE-MAILBOX
         X-REPLICATION-ARCHIVE XLIST XMOVE AUTH=PLAIN AUTH=GSSAPI
         AUTH=GS2-KRB5 AUTH=GS2-IAKERB SASL-IR XCONVERSATIONS
         COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE
         X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
         APPENDLIMIT=2147483647
         . OK Completed

   Each of the mechanism names is preceded by a 'AUTH='. For this example the PLAIN, GSSAPI, GS2-KRB5, and GS2-IAKERB mechanisms are available. If a mechanism does not appear that you wish to use, examine the libsasl log messages. Generally, if a mechanism does not appear, it means it failed to initialize. (For example, if the server is unable to access the keytab file the GSSAPI mechanism will refuse to load.)

   Plaintext login is a special case: the PLAIN SASL mechanism is only advertised under an encrypted connection. However, plaintext logins are available (as long as you haven't disabled plaintext) by using `-m login`(as above).

   To terminate the `imtest` connection, type "`. logout`".

   Once you are satisfied with the authentication mechanism list you should attempt to log in with each of those mechanisms. Run `imtest` specifying which mechanism you would like to use.

          /usr/local/bin/imtest -m KERBEROS_V4 foobar
          C: C01 CAPABILITY
          S: * OK foobar.andrew.cmu.edu Cyrus IMAP4 v2.0.0 server ready
          S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE
          UIDPLUS X-NON-HIERARCHICAL-RENAME NO_ATOMIC_RENAME AUTH=ANONYMOUS
          AUTH=GSSAPI AUTH=KERBEROS_V4 UNSELECT
          S: C01 OK Completed
          C: A01 AUTHENTICATE KERBEROS_V4
          S: + wYcDAA==
          C: BAYBQU5EUkVXLkNNVS5FRFUAOCAm7F/Y+HabCzJ
             /UMtVcvWRjTohuq/USaCV6gYdkAU5DOcADAq
          S: + 0aAsUGQZhgQ=
          C: ADMe/cVivAYYzy1yd4Vojg==
          S: A01 OK Success (privacy protection)
          Authenticated.
          Security strength factor: 56

   Any message other than one starting with a "`A01 OK`" means there is a problem. If the test fails, a more specific error message is written through `syslog` to the server log. To terminate the connection, type "`. logout`".

   See the libsasl documentation for a full description of all the mechanisms. It is also possible to support "security layers" (privacy or integrity protected connections). By default, `imtest` uses the strongest layer available with the selected mechanism; use "`-l`" to choose an alternate layer.

last modified: $Date: 2010/01/06 17:01:29 $