<domain>
Adds a field to the signature with the moment after which it is considered expired. The default is never, no expiry.
Why limit it. A signed message can be saved and sent out again a month later: the signature stays correct, the recipient trusts it. The expiry closes this window — an expired signature is not accepted by the receiver.
The count starts from the signature, not from delivery. A message stuck in a queue longer than the expiry will arrive with an expired signature — and this is the main consideration when choosing the value.
Count from the message lifetime. The signature expiry should be noticeably longer than bounce-after, otherwise delayed messages will arrive expired.
A day is a common value, but only together with a shortened message lifetime.
The default is left deliberately. The absence of an expiry is not a flaw: for ordinary bulk mail the risk of reuse is small. And dkim-disallow-adding-headers closes a different road — adding headers — and the expiry does not replace it.
# the signature expiry is noticeably longer than the message lifetime <domain *> bounce-after 1d dkim-expire-after 3d</domain>
what people get wrong and how it ends2 mistakes▶
our experience
our experience
1 relation
dkim-sign<domain>Does nothing until signing is enabled. § 3.3.10.24
pmta show settings gmail.com/vmta1 | grep -i expire-after grep -i 'DKIM-Signature' /var/log/pmta/pmta.log | tail -3
3 articles
◇Do not send what will fail the check at the receiverThe node checks the SPF of its own mail before sending: if it fails, it bounces the message without waiting for someone else’s refusal.◇How the node signs messages and chooses a keyThe key is chosen by the sending domain from the headers, going through the declarations from top to bottom.◇A message header with which the submitting side adjusts the signatureFive parameters in X-DKIM-Options: selector, domain, signing identity, query method and key list.