DKIM 在 vb.net 项目中使用 MimeKit 签署电子邮件
DKIM Signing an email using MimeKit in a vb.net project
我正在使用 MimeKit 发送电子邮件,并且有人提出使用 DKIM 对它们进行签名。我查看了 MimKit 网站上的示例,并用谷歌搜索了条款,但没有找到答案。
Public Shared Sub DkimSign(ByVal message As MimeMessage)
Dim headers = New HeaderId() {HeaderId.From, HeaderId.Subject, HeaderId.Date}
Dim headerAlgorithm = DkimCanonicalizationAlgorithm.Simple
Dim bodyAlgorithm = DkimCanonicalizationAlgorithm.Simple
Dim signer = New DkimSigner("filename", "domain", "selector") With {.SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1, .AgentOrUserIdentifier = "@eng.example.com"}
message.Prepare(EncodingConstraint.SevenBit)
message.Sign(signer, headers, headerAlgorithm, bodyAlgorithm)
End Sub
实例化签名者时需要文件名、域和选择器。如果我从 "bob@website.com" 发送电子邮件,我会假设物理文件将放置在站点的根目录下,并且实例化看起来像这样:
Dim signer = New DkimSigner("dkim.txt", "website.com", "") With {.SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1, .AgentOrUserIdentifier = "???"}
但不确定 AgentOrUserIdentifier 的 format/reason ...如果我的假设有误,任何人都可以启发或纠正我吗?
fileName
参数是应该用于对消息进行签名的私钥的路径。我不确定您为什么希望它位于站点的根目录或为什么将其称为 dkim.txt,但我几乎可以保证这两种假设都是错误的。
接收客户端使用 selector
在 DNS 记录中找到正确的 public 密钥,因为同一个域可能有多个用于签名的密钥。
AgentOrUserIdentifier
对应于您在 DKIM-Signature header 中找到的 i=
参数,并指定负责签名的用户或代理人。
我正在使用 MimeKit 发送电子邮件,并且有人提出使用 DKIM 对它们进行签名。我查看了 MimKit 网站上的示例,并用谷歌搜索了条款,但没有找到答案。
Public Shared Sub DkimSign(ByVal message As MimeMessage)
Dim headers = New HeaderId() {HeaderId.From, HeaderId.Subject, HeaderId.Date}
Dim headerAlgorithm = DkimCanonicalizationAlgorithm.Simple
Dim bodyAlgorithm = DkimCanonicalizationAlgorithm.Simple
Dim signer = New DkimSigner("filename", "domain", "selector") With {.SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1, .AgentOrUserIdentifier = "@eng.example.com"}
message.Prepare(EncodingConstraint.SevenBit)
message.Sign(signer, headers, headerAlgorithm, bodyAlgorithm)
End Sub
实例化签名者时需要文件名、域和选择器。如果我从 "bob@website.com" 发送电子邮件,我会假设物理文件将放置在站点的根目录下,并且实例化看起来像这样:
Dim signer = New DkimSigner("dkim.txt", "website.com", "") With {.SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1, .AgentOrUserIdentifier = "???"}
但不确定 AgentOrUserIdentifier 的 format/reason ...如果我的假设有误,任何人都可以启发或纠正我吗?
fileName
参数是应该用于对消息进行签名的私钥的路径。我不确定您为什么希望它位于站点的根目录或为什么将其称为 dkim.txt,但我几乎可以保证这两种假设都是错误的。
接收客户端使用 selector
在 DNS 记录中找到正确的 public 密钥,因为同一个域可能有多个用于签名的密钥。
AgentOrUserIdentifier
对应于您在 DKIM-Signature header 中找到的 i=
参数,并指定负责签名的用户或代理人。