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-подписи и указывает пользователя или агента, который отвечает за подпись.

Другие вопросы по тегам