Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
D
e
m
o
Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
D
e
m
o
Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
Home
Knowledge base
Knowledge base
PMTA knowledge base
›
Scenario
Message signing and authentication
entries in this scenario: 42
dkim-sign
<domain>
critical
set by the Hub
Directive
Turns signing on for the receiver; the key itself is chosen by the sending domain from the message headers.
domain-key
Global
critical
Directive
Links a selector, a domain and a private key; the first entry whose domain matches or is a parent domain wins.
host-name
Global
critical
Directive
The first name is the main one; which one ends up in the greeting is decided by a five-step resolution.
process-x-dkim-key
<source>
critical
Directive
A permission for the source: with it, the engine takes the private key straight from the X-DKIM-Key header, signs with it and strips the header; without it, the key travels to the recipient.
smtp-source-host
Global
critical
Directive
Binds outgoing connections to a local address or CIDR range and sets the name in the SMTP greeting.
check-spf-outbound
<domain>
Directive
If it fails, the message is bounced on our side before it reaches the receiving server; a temporary error means a retry.
dkim-identity
<domain>
Directive
Lets you sign with your own key messages whose From has someone else’s domain — sending on behalf of a client.
from-domain
<rewrite-list>
Directive
Changes the address domain in the From header — the one the recipient sees; this rule does not touch the envelope.
mail-from
<rewrite-list>
set by the Hub
Directive
Changes the address from the SMTP MAIL FROM command — the one a bounce returns to and the one SPF checks; this rule does not touch the From header.
arc-identity
<domain>
Directive
Unlike the regular signature, the name goes into the domain field — the very one the recipient uses to look up the key.
arc-sign
<domain>
Directive
Enables three ARC headers; the keys are the same as for the regular signature.
dkim-add-body-limit
<domain>
Directive
Puts the length of the signed part into the signature: an appended footer no longer breaks it — and is no longer noticeable.
dkim-disallow-adding-headers
<domain>
Directive
The reverse task: the listed names are put into the signature one extra time, and the appearance of such a header breaks it.
dkim-headers
<domain>
Directive
The mandatory list cannot be changed — this line only adds your own to it.
dkim-identity-fallback
<domain>
Directive
No key matched the sender’s domain — we sign with our own instead of sending without a signature.
domain-key
<domain-key-list>
Directive
The list narrows the key search to itself — and is chosen by a message header, not by the configuration.
process-x-dkim-options
<source>
Directive
A permission for the source: with it the header sets the selector, domain, identity and query method for signing one message; without it the header is ignored and stays in the message.
arc-algorithm
<domain>
Directive
There is exactly one value; the line exists for completeness of the set, not for choice.
arc-body-canon
<domain>
Directive
The only ARC canonicalization line where there really is a choice.
arc-expire-after
<domain>
Directive
The default is never; a forwarder’s window for reuse is especially large.
arc-headers
<domain>
Directive
The mandatory set is the same as for the ordinary signature; the line only adds to it.
arc-headers-canon
<domain>
Directive
Exactly one method is supported; unlike the ordinary signature, there is no choice.
arc-identity-fallback
<domain>
Directive
For a forwarder this is not a fallback but the main path: it never has other people’s keys.
arc-oversigned-headers
<domain>
Directive
The same protection against substitution as with the ordinary signature; there is no default, and without the line it does not act.
dkim-add-timestamp
<domain>
Directive
One field by which you can later tell when the message was signed.
dkim-algorithm
<domain>
Directive
The default is right; the second value is obsolete and no longer accepted by receivers.
dkim-body-canon
<domain>
Directive
relaxed forgives extra spaces in lines, simple does not; empty lines at the end of the body do not count under either.
dkim-expire-after
<domain>
Directive
The default is never; an expiry is set where reuse of a signed message is feared.
dkim-headers-canon
<domain>
Directive
relaxed forgives spaces and the case of names, simple forgives nothing.
dkim-query-method
<domain>
Directive
There is exactly one lookup method, and it is implied by default; the line exists for compatibility.
How the node signs messages and chooses a key
critical
Mechanism
The key is chosen by the sending domain from the headers, going through the declarations from top to bottom.
Do not send what will fail the check at the receiver
critical
Mechanism
The node checks the SPF of its own mail before sending: if it fails, it bounces the message without waiting for someone else’s refusal.
A second signature on the same message
Mechanism
Twelve lines with the second- prefix: the message is signed twice, with different keys and under different identities.
What is not allowed in FIPS mode
Mechanism
In FIPS mode only a validated set of algorithms is available: some familiar encryption and signing settings become unavailable.
A signing key that came along with the message
Mechanism
A private key is passed in a message header; the node signs with it and removes the header before sending.
A message header with which the submitting side adjusts the signature
Mechanism
Five parameters in X-DKIM-Options: selector, domain, signing identity, query method and key list.
A signature that preserves someone else's verification when forwarding
Mechanism
Three headers in which the forwarder attests: the message came to me like this and with these verification results.
Authentication directive index
Mechanism
A summary of the directives related to login: they are scattered across several blocks.
How to enable DKIM signing from scratch
critical
Procedure
Eight steps: domain, selector, key, permissions, DNS record, declaration, enabling and routing.
Change a signing key without interrupting sending
Procedure
Add the new key under a new selector, apply, start signing with it, wait for messages with the old one to leave — and only then remove the old one.
<domain-key-list>
Configuration block
A named list of domain-key lines at node level: a message selects it with the
x-dkim-options
header with
key-list=
, and the key is searched only in that list.
check spf
Command
Returns the same verdict as the recipient — based on the address, the greeting name and the return address.