Default SquirrelMail configuration file


Don't edit this file directly. Copy it to config.php before you edit it. However, it is best to use the configuration script conf.pl if at all possible. That is the easiest and cleanest way to configure.

Note on SECURITY: some options require putting a password in this file. Please make sure that you adapt its permissions appropriately to avoid passwords being leaked to e.g. other system users. Take extra care when the webserver is shared with untrusted users.

include (SM_PATH.'config/config_local.php') (line 1169)

This option includes special configuration options

integer $abook_file_line_length (line 1029)

Controls file based address book entry size

This setting controls space allocated to file based address book records. End users will be unable to save address book entry, if total entry size (quoted address book fields + 4 delimiters + linefeed) exceeds allowed address book length size.

Same setting is applied to personal and global file based address books.

It is strongly recommended to keep default setting value. Change it only if you really want to store address book entries that are bigger than two kilobytes (2048).

  • since: 1.5.2 and 1.4.9
string $abook_global_file (line 997)

Shared filebased address book

  • since: 1.5.1 and 1.4.4
bool $abook_global_file_listing (line 1011)

Listing of shared address book control

  • since: 1.5.1 and 1.4.9
bool $abook_global_file_writeable (line 1004)

Writing into shared address book control

  • since: 1.5.1 and 1.4.4
string $addrbook_global_dsn (line 1086)

DSN of global address book database

  • since: 1.5.1 and 1.4.4
boolean $addrbook_global_listing (line 1104)

Control listing of global database address book

  • since: 1.5.1 and 1.4.4
string $addrbook_global_table (line 1092)

Table used for global database address book

  • since: 1.5.1 and 1.4.4
boolean $addrbook_global_writeable (line 1098)

Control writing into global database address book

  • since: 1.5.1 and 1.4.4
bool $allow_charset_search (line 644)

IMAP Charset Use Control

This option allows you to choose if SM uses charset search Your imap server should support SEARCH CHARSET command for this to work.

bool $allow_server_sort (line 634)

Server Side Sorting Control

to use server-side sorting instead of SM client side. Your IMAP server must support the SORT extension for this to work.

bool $allow_thread_sort (line 624)

Server Side Threading Control

If you want to enable server side thread sorting options Your IMAP server must support the THREAD extension for this to work.

string $attachment_dir (line 526)

Attachments directory

Path to directory used for storing attachments while a mail is being sent. There are a few security considerations regarding this directory:

  • It should have the permission 733 (rwx-wx-wx) to make it impossible for a random person with access to the webserver to list files in this directory. Confidential data might be laying around there.
  • Since the webserver is not able to list the files in the content is also impossible for the webserver to delete files lying around there for too long.
  • It should probably be another directory than data_dir.

bool $auto_create_special (line 425)

Create Special Folders Control

Should I create the Sent and Trash folders automatically for a new user that doesn't already have them created?

string $browser_rendering_mode (line 747)

Rendering Mode (quirks/(almost) standards)

Control browser rendering mode (affects the DOCTYPE at the top of all pages):

"quirks" = quirks mode "almost" = almost standards mode "standards" = standards mode

  • since: 1.4.23
string $check_mail_mechanism (line 774)

Check Mail Mechanism (META/(advanced) JavaScript)

Determine the mechanism used to refresh the folder list (when user has enabled such in their preferences)

"meta" = META tag "basic" = JavaScript (most compatible; slightly fallible) "advanced" = JavaScript (less compatible; most accurate)

  • since: 1.4.23
string $check_referrer (line 732)

Check Page Referrer

Enforces a safety check on page requests by checking that the referrer is the domain specified by this setting. If this setting is "###DOMAIN###", the current value of the $domain variable will be used for the check.

If a browser doesn't send referrer data, this check will be silently bypassed.

Examples: $check_referrer = 'example.com'; $check_referrer = '###DOMAIN###';

  • since: 1.5.2 and 1.4.20RC1
string $config_location_base (line 684)

Location base

This is used to build the URL to the SquirrelMail location. It should contain only the protocol and hostname/port parts of the URL; the full path will be appended automatically.

If not specified or empty, it will be autodetected.

Examples: http://webmail.example.org http://webmail.example.com:8080 https://webmail.example.com:6691

To be clear: do not include any of the path elements, so if SquirrelMail is at http://example.net/web/mail/src/login.php, you write: http://example.net

  • since: 1.4.8
integer $config_use_color (line 1164)

Color in config control

This option is used only by conf.pl script to generate configuration menu with some colors and is provided here only as reference.

string $data_dir (line 508)

Path to the data/ directory

It is a possible security hole to have a writable directory under the web server's root directory (ex: /home/httpd/html). It is possible to put the data directory anywhere you would like; it is strongly advised that it is NOT directly web-accessible.

The path name can be absolute or relative (to the config directory). If it is relative, it must use the SM_PATH constant. Here are two examples:

Absolute: $data_dir = '/var/local/squirrelmail/data/';

Relative (to main SM directory): $data_dir = SM_PATH . 'data/'; (NOT recommended: you need to secure apache to make sure these files are not world readable)

string $default_charset (line 1131)

Default Charset

This option controls what character set is used when sending mail and when sending HTML to the browser. Do not set this to US-ASCII, use ISO-8859-1 instead.

This option is active only when default language is en_US. In other cases SquirrelMail uses charset that depends on default language. See $squirrelmail_default_language

string $default_folder_prefix (line 351)

Default IMAP folder prefix

Many servers store mail in your home directory. With this, they store them in a subdirectory: mail/ or Mail/, etc. If your server does this, please set this to what the default mail folder should be. This is still a user preference, so they can change it if it is different for each user.

Example: $default_folder_prefix = 'mail/'; -- or -- $default_folder_prefix = 'Mail/folders/';

If you do not use this, set it to the empty string.

string $default_left_size (line 548)

Default Size of Folder List

This is the default size of the folder list. Default is 150, but you can set it to whatever you wish.

bool $default_sub_of_inbox (line 442)

Subfolder Layout Control

Are all your folders subfolders of INBOX (i.e. cyrus IMAP server). If you are unsure, set it to false.

integer $default_unseen_type (line 474)

These next two options set the defaults for the way that the users see their folder list.

$default_unseen_notify Specifies whether or not the users will see the number of unseen in each folder by default and also which folders to do this to. Valid values are: 1=none, 2=inbox, 3=all. $default_unseen_type Specifies the type of notification to give the users by default. Valid choice are: 1=(4), 2=(4,25).

bool $default_use_javascript_addr_book (line 990)

Javascript in Addressbook Control

Users may search their addressbook via either a plain HTML or Javascript enhanced user interface. This option allows you to set the default choice. Set this default choice as either: true = javascript false = html

bool $default_use_mdn (line 584)

Delivery Receipts Control

This option enables use of read/delivery receipts by end users.

bool $default_use_priority (line 567)

Email Priority Control

This option enables use of email priority flags by end users.

bool $delete_folder (line 407)

The following are related to deleting messages.

$default_move_to_trash If this is set to 'true', when 'delete' is pressed, it will attempt to move the selected messages to the folder named $trash_folder. If it's set to 'false', we won't even attempt to move the messages, just delete them. $default_move_to_sent If this is set to 'true', sent messages will be stored in $sent_folder by default. $default_save_as_draft If this is set to 'true', users are able to use $draft_folder to store their unfinished messages. $trash_folder This is the path to the default trash folder. For Cyrus IMAP, it would be 'INBOX.Trash', but for UW it would be 'Trash'. We need the full path name here. $draft_folder This is the patch to where Draft messages will be stored. $auto_expunge If this is true, when a message is moved or copied, the source mailbox will get expunged, removing all messages marked 'Deleted'. $sent_folder This is the path to where Sent messages will be stored. $delete_folder If this is true, when a folder is deleted then it will not get moved into the Trash folder.

integer $dir_hash_level (line 539)

Hash level used for data directory.

This option allows spliting file based squirrelmail user data storage directory into several subfolders. Number from

  1. to 4 allows allows having up to four subfolder levels.
Hashing should speed up directory access if you have big number of users (500 and more).

bool $disable_security_tokens (line 711)

Secure Forms

Disable security tokens used to authenticate the source of user data received by SquirrelMail?

It is highly discouraged to enable this setting.

  • since: 1.5.2 and 1.4.20RC1
boolean $display_imap_login_error (line 294)

Show login error from the IMAP server (true) or show the traditional/generic "Unknown user or password incorrect" (false)?

string $domain (line 118)

Default Domain

The domain part of local email addresses. This is for all messages sent out from this server. Reply address is generated by $username@$domain Example: In bob@example.com, example.com is the domain.

bool $edit_name (line 598)

Identity Controls

If you don't want to allow users to change their email address then you can set $edit_identity to false, if you want them to not be able to change their full name too then set $edit_name to false as well. $edit_name has no effect unless $edit_identity is false;

string $encode_header_key (line 170)

SquirrelMail header encryption

Encryption key allows to hide SquirrelMail Received: headers in outbound messages. Interface uses encryption key to encode username, remote address and proxied address, then stores encoded information in X-Squirrel-* headers.

Warning: used encryption function is not bulletproof. When used with static encryption keys, it provides only minimal security measures and information can be decoded quickly.

Encoded information can be decoded with decrypt_headers.php script from SquirrelMail contrib/ directory.

  • since: 1.5.1 and 1.4.5
bool $force_username_lowercase (line 559)

Username Case Control

Some IMAP servers allow a username (like 'bob') to log in if they use uppercase in their name (like 'Bob' or 'BOB'). This creates extra preference files. Toggling this option to true will transparently change all usernames to lowercase.

string $frame_top (line 84)

Top frame

By default SquirrelMail takes up the whole browser window, this allows you to embed it within sites using frames. Set this to the frame you want it to stay in.

bool $hide_auth_header (line 614)

SquirrelMail adds username information to every sent email.

It is done in order to prevent possible sender forging when end users are allowed to change their email and name information.

You can disable this header, if you think that it violates user's privacy or security. Please note, that setting will work only when users are not allowed to change their identity.

See SquirrelMail bug tracker #847107 for more details about it.

  • since: 1.5.1 and 1.4.5
bool $hide_sm_attributions (line 576)

SquirrelMail Attributions Control

This option disables display of "created by squirrelmail developers" strings and provider link

integer $imapPort (line 210)

IMAP server port

Port used by your imap server. (Usually 143)

string $imapServerAddress (line 202)

IMAP server address

The dns name (or IP address) for your imap server.

string $imap_auth_mech (line 285)

IMAP authentication mechanism

auth_mech can be either 'login','plain', 'cram-md5', or 'digest-md5'

string $imap_server_type (line 231)

IMAP server type

The type of IMAP server you are running. Valid type are the following (case is important): courier cyrus exchange uw macosx hmailserver other

Please note that this changes only some of server settings.

In order to set everything correctly, you need to adjust several squirrelmail options. These options are listed in doc/presets.txt

bool $invert_time (line 129)

Time offset inversion

If you are running on a machine that doesn't have the tm_gmtoff value in your time structure and if you are in a time zone that has a negative offset, you need to set this value to 1. This is typically people in the US that are running Solaris 7.

bool $list_special_folders_first (line 433)

List Special Folders First Control

Whether or not to list the special folders first (true/false).

bool $lossy_encoding (line 1142)

Lossy Encoding Control

This option allows charset conversions when output charset does not support all symbols used in original charset. Symbols unsupported by output charset will be replaced with question marks.

  • since: 1.4.4 and 1.5.1
string $motd (line 1037)


This is a message that is displayed immediately after a user logs in.

bool $noselect_fix_enable (line 483)

NoSelect Fix Control

This enables the no select fix for Cyrus when subfolders exist but parent folders do not

bool $no_list_for_subscribe (line 1155)

Subscribe Listing Control

this disables listing all of the folders on the IMAP Server to generate the folder subscribe listbox (this can take a long time when you have a lot of folders). Instead, a textbox will be displayed allowing users to enter a specific folder name to subscribe to

This option can't be changed by conf.pl

bool $only_secure_cookies (line 698)

Secure Cookies

Only transmit cookies via a secure connection if the session was started using HTTPS/SSL?

Highly recommended

  • since: 1.5.2 and 1.4.16
string $optional_delimiter (line 309)

IMAP folder delimiter

This is the delimiter that your IMAP server uses to distinguish between folders. For example, Cyrus uses '.' as the delimiter and a complete folder would look like 'INBOX.Friends.Bob', while UW uses '/' and would look like 'INBOX/Friends/Bob'. Normally this should be left at 'detect' but if you are sure you know what delimiter your server uses, you can specify it here.

To have it autodetect the delimiter, set it to 'detect'.

string $org_logo (line 41)

Organization's logo picture (blank if none)

string $org_logo_height (line 53)

The height of the logo (0 for default)

string $org_logo_width (line 47)

The width of the logo (0 for default)

string $org_name (line 35)

Organization's name

string $org_title (line 61)

Webmail Title

This is the web page title that appears at the top of the browser window.

bool $pop_before_smtp (line 318)

POP before SMTP setting

Do you wish to use POP3 before SMTP? Your server must support this in order for SquirrelMail to work with it.

bool $pop_before_smtp_host (line 330)

POP before SMTP server address

When using POP3 before SMTP, if the POP server address is not the same as the SMTP server address, specify it here. If this is left empty, the SMTP server address will be used by default.

string $provider_name (line 95)

Provider name

Here you can set name of the link displayed on the right side of main page.

Link will be displayed only if you have $hide_sm_attributions option set to true.

string $provider_uri (line 106)

Provider URI

Here you can set URL of the link displayed on the right side of main page.

Link will be displayed only if you have $hide_sm_attributions option set to true.

string $sendmail_args (line 194)

Extra sendmail command arguments.

Sets additional sendmail command arguments. Make sure that arguments are supported by your sendmail program. -f argument is added automatically by SquirrelMail scripts. Variable defaults to standard /usr/sbin/sendmail arguments. If you use qmail-inject, nbsmtp or any other sendmail wrapper, which does not support -t and -i arguments, set variable to empty string or use arguments suitable for your mailer.

  • since: 1.5.1 and 1.4.8
string $sendmail_path (line 180)

Path to Sendmail

Program that should be used when sending email. SquirrelMail expects that this program will follow options used by original sendmail (http://www.sendmail.org).

string $session_name (line 660)

PHP session name.

Leave this alone unless you know what you are doing.

bool $show_contain_subfolders_option (line 458)

Subfolder Format Control

Some IMAP daemons (UW) handle folders weird. They only allow a folder to contain either messages or other folders, not both at the same time. This option controls whether or not to display an option during folder creation. The option toggles which type of folder it should be.

If this option confuses you, just set it to 'true'. You can not hurt anything if it's true, but some servers will respond weird if it's false. (Cyrus works fine whether it's true OR false).

bool $show_prefix_option (line 361)

User level prefix control

If you do not wish to give them the option to change this, set it to false. Otherwise, if it is true, they can change the folder prefix to be anything.

string $signout_page (line 74)

Signout page

Rather than going to the signout.php page (which only allows you to sign back in), setting signout_page allows you to sign the user out and then redirect to whatever page you want. For instance, the following would return the user to your home page: $signout_page = '/'; Set to the empty string to continue to use the default signout page.

integer $smtpPort (line 151)

Your SMTP port number (usually 25).

string $smtpServerAddress (line 146)

Your SMTP server (usually the same as the IMAP server).

string $smtp_auth_mech (line 257)

SMTP authentication mechanism

auth_mech can be either 'none', 'login','plain', 'cram-md5', or 'digest-md5'

string $smtp_sitewide_pass (line 277)

Custom SMTP Authentication Password

IMAP password is used if variable is set to an empty string. Variable is included in the main configuration file in 1.4.11+ and 1.5.2+

  • since: 1.4.11
string $smtp_sitewide_user (line 267)

Custom SMTP Authentication Username

IMAP username is used if variable is set to an empty string. Variable is included in the main configuration file only in 1.4.11+ and 1.5.2+.

  • since: 1.4.11
string $squirrelmail_default_language (line 1116)

Default language

This is the default language. It is used as a last resort if SquirrelMail can't figure out which language to display. Language names usually consist of language code, undercore symbol and country code

array $theme (line 800)

Listing of installed themes

string $theme_css (line 794)

Themes You can define your own theme and put it in this directory.

You must call it as the example below. You can name the theme whatever you want. For an example of a theme, see the ones included in the config directory.

To add a new theme to the options that users can choose from, just add a new number to the array at the bottom, and follow the pattern.

$theme_default sets theme that will be used by default $theme_css sets stylesheet (from theme/css directory) that will be used by default.

bool $uid_support (line 652)

IMAP UID control

This option allows you to enable unique identifier (UID) support.

bool $useSendmail (line 140)

Default send transport

What should be used when sending email. If it is set to false, SquirrelMail will use SMTP server settings. If it is set to true, SquirrelMail will use program defined in $sendmail_path

bool $use_imap_tls (line 240)

Advanced IMAP authentication options control

CRAM-MD5, DIGEST-MD5, Plain, and TLS Set reasonable defaults - you'd never know this was there unless you ask for it

bool $use_smtp_tls (line 249)

Advanced SMTP authentication options control

CRAM-MD5, DIGEST-MD5, Plain, and TLS Set reasonable defaults - you'd never know this was there unless you ask for it

bool $use_special_folder_color (line 416)

Special Folder Color Control

Whether or not to use a special color for special folders. If not, special folders will be the same color as the other folders.

bool $use_transparent_security_image (line 759)

Security Image Type

Switches between using a transparent image and one that states "this image has been removed for security reasons"

  • since: 1.5.2 and 1.4.23

Documentation generated on Sun, 20 Apr 2014 04:20:27 +0200 by phpDocumentor 1.4.3