See Logging.
The Haraka core reads some configuration files to determine a few actions:
- smtp.yaml or smtp.json
If either of these files exist then they are loaded first. This file is designed to use the JSON/YAML file overrides documented in Config to optionally provide the entire configuration in a single file.
- plugins
The list of plugins to load
- smtp.ini
Keys:- listen_host, port - the host and port to listen on (default: ::0 and 25)
- listen - (default: ::0:25) Comma separated IP:Port addresses to listen on
- inactivity_time - how long to let clients idle in seconds (default: 300)
- nodes - specifies how many processes to fork. The string "cpus" will fork as many children as there are CPUs (default: 1, which enables cluster mode with a single process)
- user - optionally a user to drop privileges to. Can be a string or UID.
- group - optionally a group to drop privileges to. Can be a string or GID.
- ignore_bad_plugins - If a plugin fails to compile by default Haraka will stop at load time. If, however, you wish to continue on without that plugin's facilities, then set this config option
- daemonize - enable this to cause Haraka to fork into the background on start-up (default: 0)
- daemon_log_file - (default: /var/log/haraka.log) where to redirect stdout/stderr when daemonized
- daemon_pid_file - (default: /var/run/haraka.pid) where to write a PID file to
- spool_dir - (default: none) directory to create temporary spool files in
- spool_after - (default: -1) if message exceeds this size in bytes, then spool the message to disk specify -1 to disable spooling completely or 0 to force all messages to be spooled to disk.
- graceful_shutdown - (default: false) enable this to wait for sockets on shutdown instead of closing them quickly
- force_shutdown_timeout - (default: 30) number of seconds to wait for a graceful shutdown
- me
A name to use for this server. Used in received lines and elsewhere. Setup by default to be your hostname. - connection.ini
See inline comments in connection.ini for the following settings:- haproxy.hosts_ipv4
- haproxy.hosts_ipv6
- headers.*
- max.bytes
- max.line_length
- max.data_line_length
- max.mime_parts
- message.greeting
- message.close
- smtputf8
- strict_rfc1869
- uuid.deny_chars
- uuid.banner_bytes
- plugin_timeout
Seconds to allow a plugin to run before the next hook is called automatically default: 30
Note also that each plugin can have aconfig/<plugin_name>.timeout
file specifying a per-plugin timeout. In this file you can set a timeout of 0 to mean that this plugin's hooks never time out. Use this with care.
If the plugin is in a sub-directory of plugins, then you must create this file in the equivalent path e.g. the queue/smtp_forward would need a timeout file inconfig/queue/smtp_forward.timeout
- outbound.ini
- outbound.bounce_message
The bounce message if delivery of the message fails. The default is normally fine. Bounce messages contain a number of template replacement values which are best discovered by looking at the source code.