Knowledge base

<domain-key-list>

A named list of signing keys
One client’s keys in their own list

The block collects domain-key lines under one name and is declared only at node level. By itself it signs nothing: the list is selected by the message — with the x-dkim-options header with the key-list= parameter, if the source is allowed process-x-dkim-options.

The search narrows to the list. For x-dkim-options: s=foo;key-list=xyz the engine looks for a key with the foo selector only in the xyz list and, if it does not find one, does not sign the message. Without key-list the usual selection applies — the sending address keys and those inherited from node level. The list narrows the key search for ARC signing the same way.

Why it is needed: on a node that signs mail for several clients, one client’s message will not get another client’s key, even if the selectors match.

Example configuration
<domain-key-list keylist-customer-one>
    domain-key m,mail.port25.com,/etc/pmta/m.pem    domain-key base,*,/etc/pmta/base.pem
</domain-key-list>
Following the manual’s example: a message with x-dkim-options: s=m;key-list=keylist-customer-one is signed with the m key, and one with a selector that is not in the list stays unsigned.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.