Go parser for Rspamd DKIM configuration files (dkim.conf and dkim_signing.conf).
- Parses DKIM module config (
dkim.conf). - Parses DKIM signing config (
dkim_signing.conf) including per-domain rules. - Parses the
sign_headerslist into structured entries. - Parses
maps.dmap files (selectors, paths, signed domains).
go get github.com/littlebugger/dkim.confpackage main
import (
"fmt"
"os"
"github.com/littlebugger/dkim.conf/rspamd/dkim"
)
func main() {
f, err := os.Open("dkim.conf")
if err != nil {
panic(err)
}
defer f.Close()
conf, err := dkim.ParseDKIMConf(f)
if err != nil {
panic(err)
}
fmt.Printf("enabled=%v sign_headers=%q\n", conf.Enabled, conf.SignHeaders)
}package main
import (
"os"
"github.com/littlebugger/dkim.conf/rspamd/dkim"
)
func main() {
f, err := os.Open("dkim_signing.conf")
if err != nil {
panic(err)
}
defer f.Close()
conf, err := dkim.ParseDKIMSigningConf(f)
if err != nil {
panic(err)
}
_ = conf
}package main
import (
"os"
"github.com/littlebugger/dkim.conf/rspamd/dkim"
)
func main() {
f, err := os.Open("maps.d/dkim_selectors.map")
if err != nil {
panic(err)
}
defer f.Close()
selectors, err := dkim.ParseDKIMSelectorsMap(f)
if err != nil {
panic(err)
}
_ = selectors
}go test ./...See examples/ for sample configs and map files. The examples include file paths only; no private keys are included.
MIT. See LICENSE.