He escrito un programa en C# que envía mensajes de correo electrónico. Ahora tengo un requisito para firmar los mensajes de correo salientes utilizando Dominkeys/DKIM, pero no estoy seguro de cómo hacerlo.

He configurado todas las claves, pero no sé cómo conseguir esos y hwo incluir en el encabezado de correo electrónico.

¿De encontrar una solución utilizando SMTP de Windows Server?
comprobar mi aceptado respuesta..

OriginalEl autor Nnp | 2010-03-01

6 Comentarios

  1. 14

    Hay un problema fundamental con el intento de hacer firmas DKIM con el Sistema.Net.Correo.MailMessage y del Sistema.Net.Correo.SmtpClient que es que en el fin de firmar el mensaje, usted necesita para empujar la parte interna de la SmtpClient con el fin de hash en el cuerpo del mensaje como uno de los pasos en la generación de la DKIM-Firma de cabecera. El problema viene cuando tienes puntos de vista alternativos o archivos adjuntos porque SmtpClient generará nuevos multipart límites cada vez que se escribe el mensaje que rompe el cuerpo de hash y por lo tanto el DKIM-Firma de validez.

    Para evitar este problema, puede utilizar el MimeKit y MailKit bibliotecas de código abierto .RED como un marco alternativo para el uso del Sistema.Net.Correo.

    Para agregar una firma DKIM en un mensaje en MimeKit, tendría que hacer algo como esto:

    MimeMessage message = MimeMessage.CreateFromMailMessage(mailMessage);
    HeaderId[] headersToSign =  new HeaderId[] { HeaderId.From, HeaderId.Subject, HeaderId.Date };
    
    string domain = "example.net";
    string selector = "brisbane";
    
    DkimSigner signer = new DkimSigner ("C:\my-dkim-key.pem", domain, selector) 
    {
       SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1,
       AgentOrUserIdentifier = "@eng.example.com",
       QueryMethod = "dns/txt",      
    };
    
    //Prepare the message body to be sent over a 7bit transport (such as 
    //older versions of SMTP). This is VERY important because the message
    //cannot be modified once we DKIM-sign our message!
    //
    //Note: If the SMTP server you will be sending the message over 
    //supports the 8BITMIME extension, then you can use
    //`EncodingConstraint.EightBit` instead.
    message.Prepare (EncodingConstraint.SevenBit);
    
    message.Sign (signer, headersToSign, 
        DkimCanonicalizationAlgorithm.Relaxed, 
        DkimCanonicalizationAlgorithm.Simple);

    Para enviar el mensaje con MailKit, tendría que hacer algo como esto:

    using (var client = new MailKit.Net.Smtp.SmtpClient ()) {
        client.Connect ("smtp.gmail.com", 465, true);
        client.Authenticate ("username", "password");
        client.Send (message);
        client.Disconnect (true);
    }

    Espero que ayude.

    OriginalEl autor jstedfast

  2. 5

    ver https://github.com/dmcgiv/DKIM.Net es un DomainKeys identified Mail (DKIM) implementación .Net escrito en C# – se permite firmar MailMessage objetos.

    Actualmente lanza excepciones fuera de la caja – tratando de depurar, pero estoy pensando en encontrar otra biblioteca en la media de tiempo
    léame ha sido actualizado. Si usted todavía está teniendo problemas crea un problema en el sitio de github por favor, con más detalles.
    no funciona con archivos adjuntos :-/

    OriginalEl autor Damien McGivern

  3. 2

    Uso
    http://www.mimekit.org

    No sólo permiten el uso de DKIM para firmar, también puede incluir los certificados S/MIME, PGP certificados, y más.
    También, se trata de una muy maduro lib – el único que he encontrado que se encarga de lenguas extranjeras (aparte del inglés) correctamente, desde su más completa y detallada codificados con unicode en mente.

    Su libre y opensource.

    OriginalEl autor johngrinder

  4. 1

    Si usted está buscando para DKIM-firmar el cuerpo de la MailMessage, a continuación, DKIM.NET es genial. Si usted está mirando para tener puntos de vista alternativos en su mensaje entonces yo no era capaz de encontrar una solución y escribí mi propio (open-source con las renuncias habituales) que se puede encontrar en la https://github.com/yannispsarras/DKIM-AlternativeViews

    Entiendo que esto es un bastante pasado de rosca, pero pensé que puede ayudar a alguien.

    Yo no entiendo la downvote. Incluso he proporcionado un proyecto de código abierto que hace todo eso…
    No se preocupe. Me han quitado él downvote.
    No funciona cuando el apego en mailmessage es por eso que estoy usando Mailkit.

    OriginalEl autor Yannis

  5. 0

    yo no encontrar mucha ayuda en este tema, pero mi problema se resuelve mediante la configuración de servidor smtp.
    no puedo publicar los pasos como estoy usando la 3ª parte de servidor smtp y cada servidor tiene su propia configuración. después de una correcta configuración de mi smtp agrega automáticamente DM/firma DKIM.

    El servidor SMTP?
    su de strongMail.

    OriginalEl autor Nnp

Dejar respuesta

Please enter your comment!
Please enter your name here