Skip to content
Barry O'Donovan edited this page Feb 14, 2014 · 1 revision

This page discusses the options that can be set in application/configs/application.ini. You would typically create this file initially by copying the sample application.ini.dist file in the same directory.

NB: Not every option is covered here - where an option is not covered in this document, a link to relevant documentation should be listed in application.ini.dist.

If you want more technical information on how the configuration works, read the Zend_Config_Ini page of Zend Framework 1.

Domain Settings

defaults.domain.quota = 0
defaults.domain.maxquota = 0
defaults.domain.transport = "virtual"
defaults.domain.aliases = 0
defaults.domain.mailboxes = 0

defaults.quota.multiplier = 'MB'

See Quotas for an explanation of quota and maxquota.

aliases and mailboxes set the maximum allowed number of aliases and mailboxes that an administrator is allowed to create for this domain. Setting either to zero means unlimited.

transport is used by the SQL select queries in Postfix. If in doubt, leave it set to virtual.

Quotas are always stored in the database in bytes. quota and maxquota above should also always be entered in bytes. However, the frontend can take entries in and display entries in other formats. defaults.quota.multiplier defines this.

Mailbox Settings and Defaults

; This sets the uid and gid columns in the mailbox table to the below values
defaults.mailbox.uid = 2000
defaults.mailbox.gid = 2000

These are used by Postfix when first creating a mailbox. This is the user ID and group ID of the created mailbox directories and files. This needs to match your Postfix and Dovecot configuration.

; Set the homedir and maildir values in the mailbox table where the
; following substitutions apply:
;
;     %d -> domain part of email address
;     %u -> user part of email address
;     $m -> full email address
;
;
; http://wiki2.dovecot.org/VirtualUsers/Home

defaults.mailbox.maildir = "maildir:/srv/vmail/%d/%u/mail:LAYOUT=fs"
defaults.mailbox.homedir = "/srv/vmail/%d/%u"

Review the above linked Dovecot documentation for further details on this option. Needs to match your Dovecot configuration.

; minimum mailbox password length
defaults.mailbox.min_password_length = 8

The minimum allowed length of mailbox passwords. Enforced by the fronted.

; The password hashing function to use. Set to one of:
;
;   "plain"       - password stored as clear text 
;   "md5"         - password hashed using MD5 without salt (PHP md5())
;   "md5.salted"  - password hashed using MD5 with salt (see below)
;   "sha1"        - password hashed using sha1 without salt
;   "sha1.salted" - password hashed using sha1 with salt defined below 
;   "crypt:XXX"   - call the PHP crypt function (with random salt) where XXX is one of:
;                      md5, blowfish, sha256, sha512 
;   "dovecot:XXX" - call the Dovecot password generator (see next option below) and use the 
;                      scheme specified by XXX. To see available schemes, use 'dovecotpw -l' 
;                      or 'doveadm pw -l'

defaults.mailbox.password_scheme = "crypt:md5"
defaults.mailbox.password_salt = "xxx"

Chose a password scheme from the above. Note that sha1.salted and md5.salted requires password_salt to be set to a random string.

If choosing to use Dovecot's own password hashing function, set the following appropriately:

; The path to (and initial option(s) if necessary) the Dovecot password generator. Typical 
; values may be something like:
;
; "/usr/bin/doveadm pw"
; "/usr/bin/dovecotpw"

defaults.mailbox.dovecot_pw_binary = "/usr/bin/doveadm pw"

Mailbox aliases will create a like for like entry for each mailbox in the aliases table. If in doubt, leave it enabled. They are also hidden from the aliases view by default.

;; A "mailbox alias" will, for example add the following entry to
;; the alias table for a mailbox: [email protected]
;;
;;    [email protected] -> [email protected]
;;
;; This is required for aliasing an entire domain. If in doubt, leave it enabled.
mailboxAliases = 1

Default Values for Settings

Mailboxes can be sent a welcome email (or a reminder email) through the interface containing all relevant settings. These are based on the following configuration options:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Settings email default values.
;;
;; Substituions are as follows:
;;
;;     %d -> domain part of email address
;;     %u -> user part of email address
;;     $m -> full email address
;;
;; See (and skin) the following file to see how the below are used:
;;
;;     views/mailbox/email/settings.phtml
;;

server.smtp.enabled = 1
server.smtp.host    = "mail.%d"
server.smtp.user    = "%m"
server.smtp.port    = "465"
server.smtp.crypt   = "SSL"

server.pop3.enabled = 1
server.pop3.host  = "gpo.%d"
server.pop3.user  = "%m"
server.pop3.port  = "995"
server.pop3.crypt = "SSL"

server.imap.enabled = 1
server.imap.host  = "gpo.%d"
server.imap.user  = "%m"
server.imap.port  = "993"
server.imap.crypt = "SSL"

server.webmail.enabled = 1
server.webmail.host  = "https://webmail.%d"
server.webmail.user  = "%m"

If any enabled is set to false, no details on that section will appear in the welcome email.

Note that this welcome email can be skinned to suit your own requirements - see Skinning.

Outbound Mail Server and ViMbAdmin Identity

ViMbAdmin uses the following for templates, creating URLs, within emails, etc:

identity.orgname  = "Example Limited"
identity.name  = "Example Support Team"
identity.email = "[email protected]"   
identity.autobot.name  = "ViMbAdmin Autobot"
identity.autobot.email = "[email protected]"
identity.mailer.name   = "ViMbAdmin Autobot"  
identity.mailer.email  = "[email protected]"

ViMbAdmin sends on a number of emails. You can set how these come from via:

identity.sitename = "ViMbAdmin"
identity.siteurl = "https://www.example.com/vimbadmin/"

;; All mails and correspondance will come from the following;;

server.email.name = "ViMbAdmin Administrator"
server.email.address = "[email protected]"

ViMbAdmin needs to be configured to use an SMTP server that will allow outbound relay access so that it can send emails. This is done via:

;; See: http://framework.zend.com/manual/en/zend.mail.smtp-authentication.html
;;
;; Ensure you have a working mail server configuration so the system can
;; send emails:
;;
resources.mailer.smtphost = "localhost"
;resources.mailer.username = ""
;resources.mailer.password = ""
;resources.mailer.auth     = ""
;resources.mailer.ssl      = ""
;resources.mailer.port     = "25"

Database Settings

This is covered as part of the installation instructions. The relevant settings are:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; You database connection.
;;

resources.doctrine2cache.namespace              = 'ViMbAdmin-1'
resources.doctrine2.connection.options.driver   = 'pdo_mysql'
resources.doctrine2.connection.options.dbname   = 'vimbadmin'
resources.doctrine2.connection.options.user     = 'vimbadmin'
resources.doctrine2.connection.options.password = 'xxx'
resources.doctrine2.connection.options.host     = 'localhost'    

Server-Side and Client-Side Pagination

By default, ViMbAdmin will load and display all domains / mailboxes / aliases in the web interface. This is fine - and very useful - for small installations. However, as the number of entries grow, you may notice that it takes the client side pagination and sorting (handled by jQuery / DataTables) an increasing amount of time to render.

Once this happens, you might want to switch to server-side pagination. This is actually search / load on demand as you enter test in the table server box. This is disabled by the default. The appropriate settings are:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Use server side filtering to reduce pagination time on client side
;; Defaults to off / false
defaults.server_side.pagination.enable = false
defaults.server_side.pagination.min_search_str = 3
defaults.server_side.pagination.max_result_cnt = 500

The min_search_str is the minimum amount of characters you need to enter in the search box before ViMbAdmin will load results by AJAX.

The max_result_cnt is the maximum number of entries returned by the AJAX request for a given search term.

Additionally, we allow you to enable / disable this feature on the domain list separately. In practice, we find we want it disabled for the domain list so you can freely browse them - but enabled for aliases and mailboxes which can become very large.

The domain specific settings are configured via:

defaults.server_side.pagination.domain.enable = false
defaults.server_side.pagination.domain.min_search_str = 3
defaults.server_side.pagination.domain.max_result_cnt = 500

You can also change the number of rows shown in each table via:

; The number of rows displayed in the tables
; must be one of these: 10, 25, 50, 100
defaults.table.entries = 50

Space Used By Domains / Mailboxes

See Quotas for instructions on how to enable this feature.

The frontend can display the space used overall by a domain and individually by mailboxes when enabled and configured:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Options for the display of domain and mailbox sizes
;;
;; Enable or disable display of sizes. Default: disabled
defaults.list_size.disabled = false
;; Maildir size units. By default: KB.
defaults.list_size.multiplier = 'GB'

Logging

ViMbAdmin can log to the local file system and / or by email:


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Local filesystem logging.
;;
;; We log various things to var/log/YYYY/MM/ if you enable the logger here.
;;
;; It is useful to use the email logger to be alerted of serious errors.
;;

ondemand_resources.logger.enabled = 1

;ondemand_resources.logger.writers.email.from   = [email protected]
;ondemand_resources.logger.writers.email.to     = [email protected]
;ondemand_resources.logger.writers.email.prefix = "ViMbAdmin_Error"
;ondemand_resources.logger.writers.email.level  = 3

ondemand_resources.logger.writers.stream.level = 7

The above will write all log levels (uo to and including debug (7)) to the local filesystem (under var/log in the application directory), and email any issues with a log level of Error(3), Critical(2), Alert(1) and Emergency(0).

Additional options include:

ondemand_resources.logger.writers.stream.path    = APPLICATION_PATH "/../var/log"
ondemand_resources.logger.writers.stream.owner   = www-data
ondemand_resources.logger.writers.stream.group   = www-data
ondemand_resources.logger.writers.stream.mode    = single
ondemand_resources.logger.writers.stream.logname = vimbadmin.log

See OSS_Logger documentation for more details.

Version Check

ViMbAdmin performs a version check on super administrator login and alerts the user if there is a newer version available.

This can be disabled by setting the below to 1:

skipVersionCheck = 0

Install Pingback

ViMbAdmin 'pings' the developers as part of the set up process to let them know there is a new installation.

All we are interested in is knowing whether people are using the software or not and whether continued support and development is worth the time and effort.

Unless you're very shy, PLEASE LET US KNOW YOU'RE USING IT! The feedback from this mechanism is the only reason we are releasing version 3.

This can be disabled by setting the below to 1

skipInstallPingback = 0