2017-01-27 4 views
1

Je voulais savoir s'il était possible de signer en utilisant des en-têtes personnalisés. Donc mon fragment de code est quelque chose comme ça.Signature DKIM à l'aide de Mimekit, signature avec en-têtes personnalisés

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); 

      } 

Je ne peux pas trouver un moyen facile d'ajouter l'en-tête ci-dessous car il ne dispose pas d'ID:

Headers["X-Feedback-ID"] 

Merci!

Répondre

0

Je trouve une solution à cela, je pense que ce n'est pas très élégant :(cependant.

je devais modifier le fichier HeaderID.cs, pas sûr si le propriétaire du projet approuverait.

 XStatus, 

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

Vous pouvez réellement utiliser simplement 'HeaderId.XMailer'. – jstedfast

+0

@jstedfast, qui était un lieu porte pour un en-tête personnalisé, l'en-tête réelle est X-FeedbackID, désolé qu'il n'a pas été précisé. Je pense – Krylor

+0

, il y a toujours un problème @jstedfast, si j'utilise un en-tête personnalisé comme "X-Feedback-ID" alors il donne une exception "la liste des en-têtes ne doit pas utiliser d'en-têtes inconnus" :(. – Krylor