2012-03-25 27 views
7

Escribo una aplicación de Nodejs que necesita poder enviar correos electrónicos. Hasta ahora, he usado Postfix junto con un módulo de Nodejs llamado Nodemailer para enviar mi correo electrónico a través de Amazon SES.Firma de correos electrónicos con DKIM en Node.js

Postfix ha estado manejando la firma DKIM, pero ahora deseo deshacerme de postfix y usar Nodemailer para enviar correos electrónicos a través de Amazon SES.

Mi único problema ahora es encontrar una manera de firmar correos electrónicos dentro de Nodejs. He pensado en ejecutar un comando opendkim usando "exec" en el nodo pero no he podido descifrarlo. Desde la búsqueda, tampoco parece haber módulos para esto.

¿Alguien me puede ayudar en esto?

Respuesta

8

La última versión de Nodemailer admite el inicio de sesión de DKIM, también probado con SES.

var transport = nodemailer.createTransport("SES", { 
    AWSAccessKeyID: "AWSACCESSKEY", 
    AWSSecretKey: "AWS/Secret/key" 
}); 

// all messages sent with *transport* are signed with the following options 
transport.useDKIM({ 
    domainName: "example.com", 
    keySelector: "dkimselector", 
    privateKey: fs.readFileSync("private_key.pem") 
}); 

transport.sendMail(...); 
+0

Oh wow, no estaba al tanto de esto. Gracias por compartir. – Ryan

+1

Parece que en NM v1.8 lo cambian para usar nodemailer-dkim NPM –

5

puede encontrar en https://gist.github.com/2198497 una implementación que desarrollé para dkim-firmar correos enviados a través de SES. Está muy inspirado en la implementación de PHP por Ahmad Amarullah que se encuentra aquí: http://code.google.com/p/php-mail-domain-signer/. Soy consciente de que el código está lejos de ser limpio, pero debería ayudarlo a comenzar. Los correos enviados a través de él se consideran correctos por gmail y yahoo. No lo dude si tiene preguntas/no puede hacer que funcione.

+1

You rock! Muchas gracias por esto. Quizás deberías pensar en agregarlo a npm. – Ryan

Cuestiones relacionadas