DKIM Подписание электронного письма с помощью MimeKit в проекте vb.net
Я использую 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 ... может кто-нибудь наставить меня или исправить меня, если мои предположения неверны?
1 ответ
fileName
Параметр - это путь к закрытому ключу, который следует использовать для подписи сообщения. Я не уверен, почему вы ожидаете, что он будет в корне сайта или почему он будет называться dkim.txt, но я почти гарантирую, что оба предположения неверны.
selector
используется принимающим клиентом для поиска правильного открытого ключа в записях DNS, поскольку один и тот же домен может иметь несколько ключей, которые он использует для подписи.
AgentOrUserIdentifier
соответствует i=
параметр, который вы найдете в заголовке DKIM-подписи и указывает пользователя или агента, который отвечает за подпись.