All Projects → emersion → go-dkim

emersion / go-dkim

Licence: MIT license
A Go library to create and verify DKIM signatures (migrated)

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to go-dkim

Maddy
✉️ Composable all-in-one mail server.
Stars: ✭ 2,800 (+7268.42%)
Mutual labels:  mail, dkim
Mailu
Insular email distribution - mail server as Docker images
Stars: ✭ 3,151 (+8192.11%)
Mutual labels:  mail, dkim
Forwardemail.net
The best free email forwarding for custom domains (Web Server)
Stars: ✭ 211 (+455.26%)
Mutual labels:  mail
MailDemon
Smtp server for mass emailing, managing email lists and more. Built on .NET Core. Linux, MAC and Windows compatible.
Stars: ✭ 113 (+197.37%)
Mutual labels:  mail
rb-sisimai
Mail Analyzing Interface for email bounce: A Ruby library to parse RFC5322 bounce mails and generating structured data as JSON from parsed results. Ruby version of Sisimai: an error mail analyzer.
Stars: ✭ 78 (+105.26%)
Mutual labels:  mail
Mail Parser
Tokenizer for raw mails
Stars: ✭ 240 (+531.58%)
Mutual labels:  mail
GetApk
Show app or apk detail, and export apk file of installed app to sdcard
Stars: ✭ 42 (+10.53%)
Mutual labels:  signature
Wepush
专注批量推送的小而美的工具,目前支持:模板消息-公众号、模板消息-小程序、微信客服消息、微信企业号/企业微信消息、阿里云短信、阿里大于模板短信 、腾讯云短信、云片网短信、E-Mail、HTTP请求、钉钉、华为云短信、百度云短信、又拍云短信、七牛云短信
Stars: ✭ 2,597 (+6734.21%)
Mutual labels:  mail
yii2-symfonymailer
Yii 2 Symfony mailer extension.
Stars: ✭ 29 (-23.68%)
Mutual labels:  mail
gromox
Groupware server backend for the grommunio Distribution, supporting MAPI/HTTP, RPC/HTTP, IMAP, POP3 protocols, PHP-MAPI bindings, and import from PST/OST/MSG/TNEF, EML/ICAL/VCF, KDB
Stars: ✭ 163 (+328.95%)
Mutual labels:  mail
swiftmailer-postmark
The Official Swiftmailer Transport for Postmark.
Stars: ✭ 52 (+36.84%)
Mutual labels:  mail
Tmail
Golang SMTP server
Stars: ✭ 251 (+560.53%)
Mutual labels:  mail
yii2-mailqueue
Yii2 mail queue component for yii2-swiftmailer.
Stars: ✭ 15 (-60.53%)
Mutual labels:  mail
Edu Account Creator
Stars: ✭ 225 (+492.11%)
Mutual labels:  mail
enough mail
IMAP, POP3 and SMTP clients for Dart developers. Contains both low level as well as a high level API.
Stars: ✭ 78 (+105.26%)
Mutual labels:  mail
Spstorkcontroller
Now playing controller from Apple Music, Mail & Podcasts Apple's apps.
Stars: ✭ 2,494 (+6463.16%)
Mutual labels:  mail
Meli
🐝 experimental terminal mail client, mirror of https://git.meli.delivery/meli/meli.git https://crates.io/crates/meli
Stars: ✭ 242 (+536.84%)
Mutual labels:  mail
react-signature-canvas
A React wrapper component around signature_pad (in < 150 LoC). Unopinionated and heavily updated fork of react-signature-pad
Stars: ✭ 420 (+1005.26%)
Mutual labels:  signature
iOS-Signature-Capture
iOS-Signature-Capture is helps to capture the user signature with name and signed date in iOS and supports both Objective-c and Swift languages.
Stars: ✭ 50 (+31.58%)
Mutual labels:  signature
SplitShare
Shamir's Secret Sharing Algorithm implementation in golang combined with PGP and a mail delivery system
Stars: ✭ 31 (-18.42%)
Mutual labels:  mail

go-dkim

GoDoc builds.sr.ht status codecov

A Go library to create and verify DKIM signatures.

Note: this repository has been migrated to https://github.com/emersion/go-msgauth

Usage

Sign

r := strings.NewReader(mailString)

options := &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.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].