Shaping Option Resolution Order and Precedence
When resolving the configuration for a site, the options are resolved in the following order:
- The values for the
defaultdomain block are taken as the base - Any matching
providerblocks are then merged in - Any matching
provider+sourceblocks for the current source are merged in - Any matching site name blocks are merged in. These are domain blocks that have the default (implied) or explicitly configured
mx_rollup = trueoption set in them. - Any matching domain blocks are merged in. These are domain blocks that have
mx_rollup=falseset in them. - Any matching site name +
sourceblocks are merged. - Any matching domain +
sourceblocks are merged.
Within any of these steps above, the options are merged in the order that they appear across your configuration files, so the most recently specified value will take precedence overall.
You can specify replace_base=true in a block to have that block override the
current set of accumulated values.
Warning
There is currently no mechanism for unsetting an option previously merged in. If there is a throttle set earlier (for example in [default]) that you wish to unset rather than explicitly define a different throttle then you must use replace_base=true to replace all previously merged options.
Most options merge directly over the top of earlier options, but the additional_connection_limits and additional_message_rate_throttles options merge the maps together.