2012-03-25 15 views
7

Sto scrivendo un'applicazione Nodejs che ha bisogno di essere in grado di inviare e-mail. Finora, ho usato Postfix in combinazione con un modulo Nodejs chiamato Nodemailer per inviare la mia email tramite Amazon SES.firma email con DKIM in Node.js

Postfix ha gestito la firma DKIM, ma ora desidero sbarazzarmi di postfix e basta usare Nodemailer per inviare e-mail tramite Amazon SES.

Il mio unico problema ora è trovare un modo per firmare e-mail all'interno di Nodejs. Ho pensato di eseguire un comando opendkim usando "exec" nel nodo ma non sono stato in grado di capirlo. Dalla ricerca, sembra che non ci siano moduli per questo.

Qualcuno mi può aiutare su questo?

risposta

8

L'ultima versione di Nodemailer supporta la firma DKIM fuori dalla confezione, anch'essa testata 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, non ero a conoscenza di questo. Grazie per aver condiviso. – Ryan

+1

Sembra in NM v1.8 lo cambiano per usare nodemailer-dkim NPM –

5

è possibile trovare a https://gist.github.com/2198497 un'implementazione sviluppata per le mail di dkim-sign inviate tramite SES. È fortemente ispirato dall'implementazione del php di Ahmad Amarullah trovato qui: http://code.google.com/p/php-mail-domain-signer/. Sono ben consapevole del fatto che il codice è tutt'altro che pulito, ma dovrebbe aiutarti a iniziare. Le mail inviate attraverso di esso sono considerate corrette da gmail e yahoo. Non esitare se hai domande/non riesci a farlo funzionare.

+1

Si rock! Grazie mille per questo. Dovresti forse pensare di aggiungerlo a npm. – Ryan