This manual supports SquirrelMail 1.4.0 and up. The 1.2.x series has been obsoleted, and is only referenced in the upgrading notes of this manual.
There are only two requirements for SquirrelMail:
A web server with PHP installed. PHP needs to be at least 4.1.0.
Access to an IMAP server which supports IMAP 4 rev 1.
It doesn't really matter what OS or web server you use, as long as the combination thereof supports PHP in a stable way. Read the instructions and suggestions in the PHP documentation to see what they recommend.
If you're building your mail system from scratch, it might be a good idea to install and test all components one by one. If you install everything at once and things don't work, the troubleshoting will be more complex. If the web server doesn't work there's not much point in trying to install PHP, for instance. Make sure that everything is working before trying to install SquirrelMail.
Choosing an IMAP server
You don't actually have to run an IMAP server yourself, but you need to be able to connect to one for SquirrelMail to work. Since IMAP is an open standard, all IMAP products should be able to communicate with each other. SquirrelMail requires that the server supports IMAP 4 rev 1, but that's the only requirement there is.
Some IMAP servers support various extensions, which are developed as a complement to IMAP. Those extensions aren't required by SquirrelMail, but many of them are supported. It's recommended to have an IMAP server that supports SORT and THREAD if possible. The SORT extension allows for server side sorting, which is a lot more efficient than having to rely on PHP for sorting. This will improve SquirrelMail's performance. If the server doesn't support the THREAD extension, SquirrelMail can't show mail conversation as threads.
If possible, the IMAP server should support Unicode. Without it some translations might be unable to use sorting and threading. Courier IMAP must be compiled with the --enable-unicode option to have Unicode support.
SquirrelMail doesn't care about how the server stores the mails, but it's generally a good idea not to have an IMAP server that store mails in the mailbox (mbox) format. Mailbox performance is low when there are many mails in the same folder and it doesn't allow both mails and subfolders at the same time in the same folder.
Another good idea is to have an IMAP server that allows the use of virtual accounts. Virtual users don't have to be system users, which usually is a good thing. Again, this is not a SquirrelMail requirement, but something that you might want to consider when choosing an IMAP server.
Some systems are delivered with an IMAP server, but if it doesn't measure up to the suggestions above, you might want to replace it. There are plenty of IMAP servers at the market, so it might be difficult to decide which one to choose. It is also difficult to recommend something, since every organization has unique demands. The IMAP Connection has a searchable database of IMAP servers, as well as more information about IMAP, but that list may not cover the entire market. There are also several sites offering advice and opinions on this matter. Read them, but make your own decision since the information at some of those sites might be outdated or biased. Remember that some of the open source alternatives are well matured products that can compete, and even surpass, the commercial servers.
Configuring PHP
Without the PHP gettext extension you lose in performance.
The PHP mbstring extension is required for translations that use multibyte or character sets but ISO-8859-1. Without the PHP mbstring extension the interface will remain usable, but some internationalization features and fixes won't be enabled. It's a must if you want to read and write Japanese emails, and users who whish to do that must also set their language option to Japanese.
The PHP XML extension is required if the DIGEST-MD5 authentication is used.
1.2 Optional server programs
Perl. SquirrelMail is shipped with some Perl scripts. One of the most useful is config/conf.pl, which will help you configure your SquirrelMail installation.
An SQL database supported by the PEAR DB library, and the PEAR DB library itself. See Using database backends for more information.
Aspell or Ispell to be able to use the SquirrelSpell plugin.
These are not a must have, since SquirrelMail will function without them, but they are adding to the experience so you might want to consider them.
Directory layout in squirrelMail
SquirrelMail files are split into subdirectories according to file type and provided functions.
squirrelmail/
class/
config/
contrib/
data/
doc/
functions/
decode/
encode/
help/
images/
locale/
plugins/
po/
src/
templates/
themes/
css/
class directory stores various classes used with mime messages, email delivery, localizations and other interface functions.
config directory stores SquirrelMail configuration files and configuration utility. conf.pl script is a perl based utility used to manage SquirrelMail configuration. The config_default.php file stores default configuration values. The config.php file stores current configuration. The file config_local.php can store local site configuration overrides and configuration options that are not supported by configuration utility. default_pref stores default user preferences that are used when a new user logs in for the first time. default_pref file was stored in the data directory before SquirrelMail 1.5.1.
The contrib directory stores files that provide extra features to SquirrelMail package, but are not used directly in the webmail interface.
The data directory is default location for SquirrelMail users' preference files. You should move that directory outside of web tree or make sure that it can't be accessed by external users. This directory is not packaged anymore since SquirrelMail 1.5.1.
The doc directory stores some documentation about SquirrelMail.
functions directory stores SquirrelMail function files. The decode subdirectory stores charset decoding functions that are used to read emails encoded in different charsets. The encode directory stores charset encoding functions that are used to convert emails to charset used in interface when user replies or forwards email written in different charset.
Under help are SquirrelMail help files. Information from these files is displayed when a user clicks on Help link in SquirrelMail menu line. Help files use XML formating. They can be translated into different languages.
The images directory stores various image files that can be used in interface.
The locale directory stores SquirrelMail translations. A user can select their preferred translation in SquirrelMail Display Options.
The plugins directory stores plugins that can be used to extend SquirrelMail functionality. Activation of plugins is controlled through the SquirrelMail configuration utility. Some plugins might also use their own configuration files or functions provided by other plugins. See README and INSTALL files in each plugin's directory.
The po directory stores scripts that are used to work with SquirrelMail translation files. xgetpo script extracts translatable strings from SquirrelMail script. mergepo script combines default strings with selected translation. compilepo script compiles selected translation. These scripts are usually used only by SquirrelMail translators.
The src directory stores scripts that are used when user accesses the webmail interface.
The templates directory stores template files that can be used in SquirrelMail 1.5.1 and later versions.
The themes directory stores SquirrelMail colour themes, and the css subdirectory stores style sheet files available to end user.
User data storage
SquirrelMail stores users' preferences and address books in simple text files. The location of these files is set with the data directory setting in the SquirrelMail configuration. SquirrelMail can also use a database or some other storage facility (if the required backend is provided by a plugin) for managing user preferences.
Users' preferences are stored in .pref files. Address books are stored in .abook files. .sig and .si
When the number of files in the data directory becomes somewhat large, directory access time can be affected. In such cases, the administrator can split preference files into subdirectories by enabling directory hashing in the SquirrelMail configuration.
Configuration utility
SquirrelMail can be configured with conf.pl, a Perl script that is stored in the config/ directory. You can start it by running the configure script in the SquirrelMail base directory or by running the conf.pl script in the config directory.
# cd /path/to/squirrelmail
# cd config
# ./conf.pl
This configuration utility provides menu based configuration options:
SquirrelMail Configuration : Read: config_default.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color on
S Save data
Q Quit
Command >>
Menu is controlled by entering numbers or letters that are listed on the left side.
The address book format
By default SquirrelMail stores address books in files, one per address book, named [user account name].abook. These address book files are kept in the data directory. Address books can also be stored in a database or, if the required functions are provided by a plugin, another storage facility. SquirrelMail can also be configured to lookup addresses in LDAP directories, if the PHP installation contains LDAP support.
An address book file contains five fields, which are delimited by the vertical line (|): the first field stores nicknames, short names that are used to identify address book entries; the second field stores names; the third field stores surnames; the forth field stores mail addresses; and the fifth field stores additional information.
Additional address book fields and functions can be provided by the experimental vcard address book format and some address book plugins. You can find list of address book plugins at the SquirrelMail site.
No comments:
Post a Comment