FILTER-DKIMSIGN(8)
π filter-dkimsign(8) β like, the DKIM signer bestie β¨
okay so before we even start: this is a page from the System Manager's Manual, section 8. yes, the system-y one, the admin girlies' section. buckle up π
π¦ NAME
filter-dkimsign β it slaps a dkim signature onto your messages. that's the whole job. that's the gig. no cap. β¨
πΈ SYNOPSIS
filter-dkimsign [-tz] [-a algorithm] [-c canonicalization] [-h headers]
[-x seconds] -d domain -D file -k file -s selector
like look at that flag lineup. -d, -D, -k, -s are the mandatory besties (no brackets, they're required, periodt), everything else is optional glambag content π
π DESCRIPTION
so filter-dkimsign adds a dkim signature to the message. that's it, that's the vibe. here's every flag it supports, in order, no skips, no shortcuts (i would never):
-aalgorithm β the algorithm to use, duh. supported signing algorithms arersaanded25519(anded25519only works when it's enabled at compile time, so likeβ¦ check first π«Ά). for hashing, onlysha256should be used, because the other algorithms are most likely not supported by verifiers and you will get left on read. defaults torsa-sha256.-ccanonicalization β the canonicalization algorithm used to sign the message. defaults tosimple/simple. it's giving minimal effort, and honestly? iconic.-Dfile β file should point to a file containing a list of domains. one domain per line only, please, we are not doing chaos here. see-dfor more info.-ddomain β the domain where the public key can be found. lowkey the main character of this whole operation. you can specify this option multiple times to select the best domain during signing. if you do specify it multiple times, it looks at the domain component of the first mailbox in the from-header and tries to find a match. if no exact match can be found, it looks for the closest parent domain. and if no matches can be found at all? the first domain specified gets used. it's giving "we'll take what we can get" π-hheaders β the email headers which are included in the mail signature. per RFC this option requires at least the from header to be included β that one is non-negotiable, bestie, it's the law. the headers are specified by separating them with a colon. the default is:
from:reply-to:subject:date:to:cc:resent-date:resent-from:resent-to:resent-cc:in-reply-to:references:list-id:list-help:list-unsubscribe:list-subscribe:list-post:list-owner:list-archive
yes it's long. yes it's a whole mood. copy it, don't retype it π
-kfile β file should point to a file containing theRSAprivate key to sign the messages. guard this one with your life, fr fr π-sselector β the selector within the_domainkeysubdomain of domain where the public key can be found. little address, big responsibility β¨-tβ add the time of signing to the dkim header. timestamp slay β°-xseconds β add the amount of seconds the signature is valid to the dkim header. an expiration date, but make it cute π-zβ add the mail headers used in the dkim signature to the dkim header. and if you specify a second-z, all headers will be included in the dkim header. useful for debugging purposes π (this is the "not me debugging at 2am" flag)
π«Ά SEE ALSO
π STANDARDS
- D. Crocker, Ed., T. Hansen, Ed., and M. Kucherawy, Ed., DomainKeys Identified Mail (DKIM) Signatures, RFC 6376, Brandenburg InternetWorking, AT&T Laboratories, and Cloudmark, September 2011.
- J. Levine, A New Cryptographic Signature Method for DomainKeys Identified Mail, RFC 8463, Taughannock Networks, September 2018.
like yes, actual citations. we're academically unbothered but academically correct π
π AUTHORS
- Martijn van Duren
<martijn@openbsd.org>
real talk before you go:-kholds your private key and-D/-d/-sdecide where the world looks for your public key. get the_domainkeypart wrong and verifiers will simply not vibe with you. no pressure though π«Ά
okay that's the whole page, you ate that π and for the record β this manual's build was Linux 6.12.85-0-lts, dated May 1, 2026. screenshot it, frame it, put it on the fridge β
π¦ where this page comes from
- alpine 3.24: opensmtpd-filter-dkimsign-doc 0.6-r2 Β· ISC
- Copyright (c) 2019 Martijn van Duren <martijn@openbsd.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms