First off, you should make sure your Courier installation is functioning correctly. Unlike Courier's webmail program, SQWebmail, SquirrelMail does not work directly against a local user's home directory. Instead it communicates with Courier using IMAP, as such it is just like opening your mail with any other IMAP client, eg Mozilla Mail. Thus it would be a good idea to get Mozilla Mail (or any other IMAP client) working against your Courier server first.
If you get authentication problems - check your authdaemon setup and make sure that it is running.
If you get "connection dropped" errors - check your maildir directory structure and permissions. Maildir directory must contain cur, new and tmp subdirectories. Maildir directory and all subdirectories must be owned and writable by appropriate user. If system users are used - directory should be owned by user that uses maildir. If virtual users are used - directory should be owned by virtual user's ID.
In order to configure SquirrelMail correctly, you should start SquirrelMail configuration utility conf.pl and load courier's preset by entering D command in utility menu.
conf.pl -> d -> courier -> save configuration.
If you get folder creation errors, when SquirrelMail is configured with courier's preset - check Maildir directory permissions and config_local.php file. Stock SquirrelMail installation should work with Courier correctly if it is configured with Courier's preset. Errors can happen only when some SquirrelMail packager modifies scripts and breaks something in SquirrelMail configuration.
Courier's Preset
If you can't access SquirrelMail configuration utility, check doc/presets.txt document. It lists all options that are modified by preset.\n
imap_server_type = courier
default_folder_prefix = INBOX.
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = .
delete_folder = true
force_username_lowercase = false
Additional configuration options
You can also enable server side threading and sorting support in 4. General Options menu.
Problems
The Fedora SquirrelMail package
- The Fedora SquirrelMail package is broken for Courier's default configuration (see FedoraIgnoresConfigurationSettings for more details).
Charset is not supported
- SquirrelMail can use 16 different character sets in IMAP SORT and SEARCH commands. Courier supports these character sets only when it is compiled with --enable-unicode option.
Fatal error: Maximum execution time of 30 seconds exceeded in /somepath/squirrelmail/functions/imap_general.php
- Enable server side sorting (see above). Internal SquirrelMail 1.4.x sorting functions are slower and they might timeout on big IMAP folders.
Unknown response from IMAP server:1.Array0
- Check if you are using PHP with register_globals=off. SquirrelMail scripts are big and register_globals=on might cause variable corruptions.
If you are using ANY php cache or optimizer, try reproducing same error when cache is disabled. Some optimizers don't work with SquirrelMail correctly.