環境
Amazon Linux
Golang1.6
パッケージ :
https://golang.org/pkg/net/smtp/
https://godoc.org/github.com/eaigner/dkim
テスト:
port25.comのAuthentication Report
困っていること
Goのプラグラムからsmtpパッケージを用いてメールを送信し、DKIM認証させたいのですが認証に失敗してしまいます。
DNS record
- ドメイン名はマスクしています。鍵は1024bitsで作成しています。
dev._domainkey.xxxxx.jp. 60 IN TXT "v=DKIM1; k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDvNOCb0UpabliOOBxAmbzceAxrDsikKgCOlnQ9gHrwXloCgTH9dMYK1YBuCsTi0Zvva1h2mKuNbkj2JaGzDWSXNJObrsPwyxfm5eTS/vKrL55+i6C5EN2lfhn4AWZ4F8SvCUkluro7LVpRo99rUyMQSS9HS4Yp0sQW+TA5byLk/wIDAQAB"
DKIM Signature
dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=xxxxx.jp; q=dns/txt; s=dev; t=1486696526; bh=<ボディハッシュ>; h=From:Subject:To; b=<ハッシュ>
結果
fail (signature doesn't verify)
"fail" The message was signed and the signature or signatures were acceptable to the verifier, but they failed the verification test(s).
メッセージ
From: "4mmsod" <sample@xxxxx.jp> To: check-auth@verifier.port25.com Subject: test_subject dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=xxxxx.jp; q=dns/txt; s=dev; t=1486696526; bh=<ボディハッシュ>; h=From:Subject:To; b=<ハッシュ> Message-ID: <0.0.9.FF.1D2834BECD37FAE.0@verifier.port25.com> test_body
DKIMサイン関数
- privateKeyは同ファイル内のinitで[]byteで秘密鍵を宣言
func SignDKIM(data []byte) ([]byte, error) { if conf, err := dkim.NewConf("xxxxx.jp", "dev"); err != nil { return nil, err } else { conf[dkim.CanonicalizationKey] = "relaxed/relaxed" conf[dkim.TimestampKey] = fmt.Sprintf("%d", time.Now().Unix()) if d, err := dkim.New(conf, privateKey); err != nil { return nil, err } else { if signed, err := d.Sign(data); err != nil { return nil, err } else { return signed, nil } } } }
よろしくお願いします。不備などございましたら追記いたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/14 05:10
2017/02/14 05:15 編集
2017/02/14 06:08