DBMAIL.CONF(5)   DBMAIL.CONF(5)

dbmail.conf - configuration file for DBMail, the Database Mailer.

There are 8 sections: DBMAIL, SMTP, LMTP, POP, IMAP, SIEVE, LDAP, DELIVERY. The default config file already has documentation for all of the settings.

# Configuration file for DBMAIL
 #
 # Copyright (c) 2000-2006 IC&S, The Netherlands
 # Copyright (c) 2004-2013 NFG Net Facilities Group BV support@nfg.nl
 # Copyright (c) 2014-2019 Paul J Stevens, The Netherlands, support@nfg.nl
 # Copyright (c) 2020-2023 Alan Hicks, Persistent Objects Ltd support@p-o.co.uk
 #
 [DBMAIL]
 #
 # Database settings
 #
 # database connection URI
 # https://www.tildeslash.com/libzdb/#api
 dburi                = sqlite:///var/tmp/dbmail.db
 #
 # Supported drivers are sql, ldap.
 #
 authdriver           =
 #
 #
 # following fields are now DEPRECATED!
 #driver               =
 #host                 =
 #sqlport              =
 #sqlsocket            =
 #user                 =
 #pass                 =
 #db                   =
 #
 # Number of database connections per threaded daemon
 # This also determines the size of the worker threadpool
 #
 # Do NOT increase this without proper consideration. A
 # very large database/worker pool will not only increase
 # the connection pressure on the database, but will more
 # significantly cause unnecessary context-switching in
 # your CPUs.
 #
 #max_db_connections   = 10
 #
 # Table prefix. Defaults to "dbmail_" if not specified.
 #
 table_prefix         = dbmail_
 #
 # encoding must match the database/table encoding.
 # i.e. latin1, utf8
 encoding             = utf8
 #
 # messages with unknown encoding will be assumed to have
 # default_msg_encoding
 # i.e. iso8859-1, utf8
 default_msg_encoding = utf8
 #
 # Postmaster's email address for use in bounce messages.
 #
 #postmaster           = DBMAIL-MAILER
 #
 # Sendmail executable for forwards, replies, notifies, vacations.
 # You may use pipes (|) in this command, for example:
 # dos2unix|/usr/sbin/sendmail  works well with Qmail.
 # You may use quotes (") for executables with unusual names.
 #
 sendmail              = /usr/sbin/sendmail
 #
 #
 # The following items can be overridden in the service-specific sections.
 #
 #
 #
 # Logging via stderr/log file and syslog
 #
 # Logging is broken up into 8 logging levels and each level can be
 # individually turned on or off.
 # The Stderr/log file logs all entries to stderr or the log file.
 # Syslog logging uses the facility mail and the logging level of the event for
 # logging.
 # Syslog can then be configured to log data according to the levels.
 #
 # Set the log level to the sum of the values next to the levels you want to record.
 #   1 = Emergency
 #   2 = Alert
 #   4 = Critical
 #   8 = Error
 #  16 = Warning
 #  32 = Notice
 #  64 = Info
 # 128 = Debug
 # 256 = Database -> Logs at debug level
 #
 # Examples:   0 = Nothing
 #            31 = Emergency + Alert + Critical + Error + Warning
 #           511 = Everything
 #
 file_logging_levels       = 31
 #
 syslog_logging_levels     = 15
 #
 # Generate a log entry for database queries for the log level at number of
 # seconds of query execution time.
 #
 query_time_info       = 10
 query_time_notice     = 20
 query_time_warning    = 30
 #
 # Throw an exception is the query takes longer than query_timeout seconds
 query_timeout         = 300
 #
 # Root privileges are used to open a port, then privileges
 # are dropped down to the user/group specified here.
 #
 effective_user        = nobody
 effective_group       = nogroup
 #
 # The IPv4 and/or IPv6 addresses the services will bind to.
 # Use * for all local interfaces.
 # Use 127.0.0.1 for localhost only.
 # Separate multiple entries with spaces ( ) or commas (,).
 #
 bindip                = 0.0.0.0		# IPv4 only - all IP's
 #bindip                = ::		# IPv4 and IPv6 - all IP's (linux)
 #bindip                = ::		# IPv6 only - all IP's (BSD)
 #bindip                = 0.0.0.0,::	# IPv4 and IPv6 - all IP's (BSD)
 #
 # The maximum length of the queue of pending connections. See
 # listen(2) for more information
 #
 # backlog              = 128
 #
 # Idle time allowed before a connection is shut off.
 #
 timeout               = 300
 #
 # Idle time allowed before a connection is shut off if you have not logged in yet.
 #
 login_timeout         = 60
 #
 # If yes, resolves IP addresses to DNS names when logging.
 #
 resolve_ip            = no
 #
 # If yes, keep statistics in the authlog table for connecting users
 #
 authlog               = no
 #
 # logfile for stdout messages
 #
 logfile               = /var/log/dbmail/dbmail.log
 #
 # logfile for stderr messages
 #
 errorlog              = /var/log/dbmail/dbmail.err
 #
 # directory for storing PID files
 #
 pid_directory         = /var/run/dbmail
 #
 # directory for locating libraries (normally has a sane default compiled-in)
 #
 #library_directory       = /usr/lib/dbmail
 #
 # SSL/TLS certificates
 #
 # A file containing a list of CAs in PEM format
 tls_cafile            =
 # A file containing a PEM format certificate
 tls_cert              =
 # A file containing a PEM format RSA or DSA key
 tls_key               =
 # A cipher list string in the format given in ciphers(1)
 tls_ciphers           =
 # hashing algorithm. You can select your favorite hash type
 # for generating unique ids for message parts.
 #
 # for valid values check mhash(3) but minus the MHASH_ prefix.
 #
 # if you ever change this value run 'dbmail-util --rehash' to
 # update the hash for all mimeparts.
 #
 # examples: MD5, SHA1, SHA256, SHA512, TIGER, WHIRLPOOL
 #
 # hash_algorithm = SHA1
 # header_cache tuning
 #
 # set header_cache_readonly to 'yes' to prevent new
 # unknown header-names from being cached.
 #
 # header_cache_readonly = yes
 [LMTP]
 port                  = 24
 #tls_port              =
 [POP]
 port                  = 110
 #tls_port              = 995
 # You can set an alternate banner to display when connecting to the service
 # banner = DBMAIL pop3 server ready to rock
 # If TLS is enabled, login before starttls is normally
 # allowed. Use login_disabled=yes to change this
 #
 # login_disabled        = no
 #
 # If yes, allows SMTP access from the host IP connecting by POP3.
 # This requires addition configuration of your MTA
 #
 pop_before_smtp       = no
 [HTTP]
 port                  = 41380
 #
 # the httpd daemon provides full access to all users, mailboxes
 # and messages. Be very careful with this one!
 bindip                = 127.0.0.1
 admin                 = admin:secret
 [IMAP]
 # IMAP State Reload Strategy. Internally DBMail is loading various information
 # about the selected folders (flags, message ids, etc)
 # 1 = full reload (default)
 # 2 = diff reload (experimental)
 #   In some setups it might be beneficial to use it, due to the fact that
 #   reloading is done in differential mode, which may result in lower DB usage
 # mailbox_update_strategy = 1
 # IMAP Search strategy.
 # 1 = full sql search (default). All searches performed on the current folder
 #   are made via sql queries.
 # 2 = optimized search, use partial sql search  (experimental). Some searches
 #   will be made via loaded state of the current folder.
 #   In some setups it might be beneficial to use it, due to lower DB usage.
 # mailbox_search_strategy = 1
 # Only for IMAP Reload Strategy (mailbox_search_strategy = 2)
 # Might be beneficial to do a full reload after n iterations. Sometimes might
 # be beneficial to reload the full state reload.
 # -1 = no expiration
 #  x = number of iterations. If no mails are received (IDLE Server) those
 #    iterations can be transform in seconds
 #    mailbox_update_strategy_2_max_iterations * idle_timeout * idle_interval = s
 #
 # mailbox_update_strategy_2_max_iterations = 64
 # Allow reporting UNSEEN in SELECT command.
 # Although RFC 3501 does state it that is mandatory, missing it means that the
 # client need to issue a search for the unseen messages
 # 1 = allow UNSEEN in SELECT Command (default)
 # 0 = Do not Allow UNSEEN in SELECT Command
 # command_select_allow_unseen = 1
 # Mailbox Sequence update strategy.
 # 1 = normal behaviour, transactional safe
 # 2 = non transaction, still safe, might be better in clustered environments
 # mailbox_update_seq_strategy = 1
 # Mailbox DELETE and message status synchronization.
 # In some instances messages marked as deleted are not having the status as deleted
 # 1 = normal do not sync
 # 2 = sync
 # mailbox_sync_deleted = 1
 # If mailbox_sync_deleted=2, size of the batch.
 # Due to the fact that this flag is making correction live, protection should
 # be put in place
 # mailbox_sync_batch_size = 64
 # You can set an alternate banner to display when connecting to the service
 # banner = imap 4r1 server (dbmail 3.4.x)
 #
 # Port to bind to.
 #
 port                  = 143
 #tls_port              = 993
 #
 # IMAP prefers a longer timeout than other services.
 #
 timeout               = 4000
 #
 # If yes, allows SMTP access from the host IP connecting by IMAP.
 # This requires addition configuration of your MTA
 #
 imap_before_smtp      = no
 #
 # during IDLE, how many seconds between checking the mailbox
 # status (default: 30)
 #
 # idle_timeout          = 30
 # during IDLE, how often should the server send an '* OK' still
 # here message (default: 10)
 #
 # the time between such a message is idle_timeout * idle_interval
 # seconds
 #
 # idle_interval         = 10
 #
 # If TLS is enabled, login before starttls is normally
 # not allowed. Use login_disabled=no to change this
 #
 # login_disabled        = yes
 #
 # Provide a CAPABILITY to override the default
 #
 # capability 		= IMAP4 IMAP4rev1 AUTH=LOGIN ACL RIGHTS=texk NAMESPACE CHILDREN SORT QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE
 # max message size. You can specify the maximum message size
 # accepted by the IMAP daemon during APPEND commands.
 #
 # Supported formats:
 #  decimal: 1000000
 #  octal:   03777777
 #  hex:     0xfffff
 #
 # max_message_size      =
 [SIEVE]
 #
 # Port to bind to.
 #
 port                  = 4090
 [LDAP]
 port                  = 389
 version               = 3
 hostname              = ldap
 base_dn               = ou=People,dc=mydomain,dc=com
 #
 # If your LDAP library supports ldap_initialize(), then you can use the
 # alternative LDAP server DSN like following.
 #
 # URI                = ldap://127.0.0.1:389
 # URI                = ldapi://%2fvar%2frun%2fopenldap%2fldapi/
 #
 # Leave blank for anonymous bind.
 # example: cn=admin,dc=mydomain,dc=com
 #
 bind_dn               =
 #
 # Leave blank for anonymous bind.
 #
 bind_pw               =
 scope                 = SubTree
 # AD users may want to set this to 'no' to disable
 # ldap referrals if you are seeing 'Operations errors'
 # in your logs
 #
 referrals             = yes
 user_objectclass      = top,account,dbmailUser
 forw_objectclass      = top,account,dbmailForwardingAddress
 cn_string             = uid
 field_passwd          = userPassword
 field_uid             = uid
 field_nid             = uidNumber
 min_nid               = 10000
 max_nid               = 15000
 field_cid             = gidNumber
 min_cid               = 10000
 max_cid               = 15000
 # a comma-separated list of attributes to match when searching
 # for users or forwards that match a delivery address. A match
 # on any of them is a hit.
 field_mail            = mail
 # field that holds the mail-quota size for a user.
 field_quota           = mailQuota
 # field that holds the forwarding address.
 field_fwdtarget       = mailForwardingAddress
 # override the query string used to search for users
 # or forwards with a delivery address.
 # query_string          = (mail=%s)
 [DELIVERY]
 #
 # Run Sieve scripts as messages are delivered.
 #
 SIEVE                 = yes
 #
 # Use 'user+mailbox@domain' format to deliver to a mailbox.
 #
 SUBADDRESS            = yes
 #
 # Turn on/off the Sieve Vacation extension.
 #
 SIEVE_VACATION        = yes
 #
 # Turn on/off the Sieve Notify extension
 #
 SIEVE_NOTIFY          = yes
 #
 # Turn on/off additional Sieve debugging.
 #
 SIEVE_DEBUG           = no
 # Use the auto_notify table to send email notifications.
 #
 AUTO_NOTIFY           = no
 #
 # Use the auto_reply table to send away messages.
 #
 AUTO_REPLY            = no
 #
 # Defaults to "NEW MAIL NOTIFICATION"
 #
 #AUTO_NOTIFY_SUBJECT        =
 #
 # Defaults to POSTMASTER from the DBMAIL section.
 #
 #AUTO_NOTIFY_SENDER        =
 # If you set this to 'yes' dbmail will check for duplicate
 # messages in the relevant mailbox during delivery using
 # the Message-ID header
 #
 suppress_duplicates	= no
 #
 # Soft or hard bounce on over-quota delivery
 #
 quota_failure           = hard
 # end of configuration file

If you experience inexplicable problems with DBMail, please report the issue to the DBMail Bug Tracker[1].

DBMail and its components are distributed under the terms of the GNU General Public License. Copyrights are held variously by the authors listed below.

DBMail is a collaborative effort among the core developers listed below and the tremendous help of the testers, patchers and bug hunters listed in the AUTHORS and THANKS files found in the DBMail source distribution.

Alan Hicks          Persistent Objects Ltd https://p-o.co.uk
Eelco van Beek      Aaron Stone            Paul J Stevens
Roel Rozendaal      Open Source Engineer   NFG Net Facilities Group BV
Ilja Booij          Palo Alto, CA USA      http://www.nfg.nl
IC&S                http://hydricacid.com
http://www.ic-s.nl

Author

Author.

1.
DBMail Bug Tracker
12/09/2023