IMAP
Jump to navigation
Jump to search
IMAP servers
There are basically three main IMAP server solutions:
- UW IMAP
- IMAP server developped by the University of Washington. Uses a proprietory mailbox format mbx, which is more or less a binary version of the usual mailbox format. A binary package exists on cygwin, but it regularly suffers from locking problems. A patch exists to use maildir format though, but patch seems outdated.
- Courier IMAP
- Courier-IMAP is a fast, scalable, enterprise IMAP server that uses Maildirs.
- Cyrus IMAP
- Developped by Carnegie Mellon. Also uses a private mailbox format.
Courier IMAP
References
- Courier IMAP homepage
- On openSUSE:
- Package doc at /usr/share/doc/packages/courier-authlib and /usr/share/doc/packages/courier-imap.
- On Ubuntu:
- Manpages & package documentation:
- maildirmake(1)
- couriertcpd(1)
- imapd(8)
- userdb(8)
- makeuserdb(8)
- /usr/share/doc/courier-doc (on Ubuntu, with package courier-doc installed)
Courier IMAP on Ubuntu
To install Courier IMAP:
- Install the required packages:
sudo apt-get install courier-imap courier-doc courier-imap-ssl
- Create /etc/courier/userdb.dat
sudo su
pw2userdb >/etc/courier/userdb
chmod 600 /etc/courier/userdb
makeuserdb
maildirmake /etc/skel/Maildir # Create Maildir directory for all new users
Courier IMAP on openSUSE
Binary package for Courier IMAP is available on openSUSE (package courier-authlib and courier-imap). However it conflicts with the default IMAP server, (UW IMAP), which must first be uninstalled.
Courier IMAP on Cygwin
See the page dedicated to Courier Cygwin.
Testing IMAP
Tools
Simply use tool like telnet to connect to the IMAP server. Or equivalently use netcat or socat:
% telnet server 143
% nc server 143
% socat - TCP:server:143
!!! Problem when connecting to Microsoft servers !!! - These servers explicitly require CRLF as line-terminator, not CR as sent by Linux tools. Only workaround so far is to connect through a windows telnet.
Scripts
Here some scripts to test that an IMAP server is working properly.
- To quickly test an imap server using telnet use:
% telnet server 143
01 LOGIN username password
02 LIST "" * # show all available mailboxes
03 SELECT mailbox # mailbox: e.g. INBOX
04 LOGOUT
- To show the information about a mailbox:
% telnet server 143
04 STATUS mailbox (MESSAGES)
- Between () you can place one or more of the following: MESSAGES, UNSEEN, RECENT UIDNEXT UIDVALIDITY
- And one of the following commands to view a message (1 is the first message * is wildcard for all):
05 FETCH 1 ALL # All IMAP headers
05 FETCH 1 FULL # Full headers and body info
05 FETCH 1 BODY # Body
05 FETCH 1 ENVELOPE # Envelope
05 FETCH * FULL # All email
- To fully retrieve a message use:
06 UID fetch 1:1 (UID RFC822.SIZE FLAGS BODY.PEEK[])
Troubleshooting
- Can't connect
- Frequent mistake is that ~/MailDir was not created. Create the MailDir directory with:
su accountname
maildirmake ~/MailDir