Search code examples
c#dkimmailkitmimekit

DKIM signing using Mimekit, signing with custom headers


I wanted to know if it possible to sign using custom headers.

So my code snippet is something like this.

message.Headers.Add("X-Feedback-ID", "XXXXX -  **XXXXXX**");

string privatekey = System.IO.File.ReadAllText("my.key");

   using (Stream s = GenerateStreamFromString(privatekey))
            {
                var headersToSign = new[] { HeaderId.From, HeaderId.To, HeaderId.Subject, HeaderId.ReplyTo, HeaderId.MimeVersion, HeaderId.ContentType };
                var signer = new DkimSigner(s, "mydomain.com", "myd");   
                message.Sign(signer, headersToSign, DkimCanonicalizationAlgorithm.Relaxed, DkimCanonicalizationAlgorithm.Relaxed);

            }

I can't figure out an easy way to add the header below since it doesn't have an ID:

Headers["X-Feedback-ID"]

Thanks!


Solution

  • I found a solution to this, I think that it is not very elegant :( though.

    I had to edit the HeaderID.cs file, not sure if the owner of the project would approve.

            XStatus,
    
        /// <summary>
        /// The X-Feedback-ID header field.
        /// </summary>
        [HeaderName("X-Feedback-ID")]
        XFeedbackID,