go-msgauth

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2020 License: MIT

README

go-msgauth

GoDoc builds.sr.ht status codecov

A Go library to authenticate e-mails:

DKIM GoDoc

Sign
r := strings.NewReader(mailString)

options := &dkim.SignOptions{
	Domain: "example.org",
	Selector: "brisbane",
	Signer: privateKey,
}

var b bytes.Buffer
if err := dkim.Sign(&b, r, options); err != nil {
	log.Fatal(err)
}
Verify
r := strings.NewReader(mailString)

verifications, err := dkim.Verify(r)
if err != nil {
	log.Fatal(err)
}

for _, v := range verifications {
	if v.Err == nil {
		log.Println("Valid signature for:", v.Domain)
	} else {
		log.Println("Invalid signature for:", v.Domain, v.Err)
	}
}
FAQ

Why can't I verify a mail.Message directly? A mail.Message header is already parsed, and whitespace characters (especially continuation lines) are removed. Thus, the signature computed from the parsed header is not the same as the one computed from the raw header.

How can I publish my public key? You have to add a TXT record to your DNS zone. See RFC 6376 appendix C.

Authentication-Results GoDoc

// Format
results := []authres.Result{
	&authres.SPFResult{Value: authres.ResultPass, From: "example.net"},
	&authres.AuthResult{Value: authres.ResultPass, Auth: "sender@example.com"},
}
s := authres.Format("example.com", results)
log.Println(s)

// Parse
identifier, results, err := authres.Parse(s)
if err != nil {
	log.Fatal(err)
}

log.Println(identifier, results)

DMARC GoDoc

See the GoDoc page.

License

MIT

Directories

Path Synopsis
Package authres parses and formats Authentication-Results Authentication-Results header fields are standardized in RFC 7601.
Package authres parses and formats Authentication-Results Authentication-Results header fields are standardized in RFC 7601.
cmd
Package dkim creates and verifies DKIM signatures, as specified in RFC 6376.
Package dkim creates and verifies DKIM signatures, as specified in RFC 6376.
Package dmarc implements DMARC as specified in RFC 7489.
Package dmarc implements DMARC as specified in RFC 7489.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL