2012-03-25 12 views
7

Ich schreibe eine Nodejs-App, die E-Mails senden muss. Bisher habe ich Postfix in Verbindung mit einem Nodejs-Modul namens Nodemailer verwendet, um meine E-Mails über Amazon SES zu versenden.E-Mails mit DKIM in Node.js signieren

Postfix hat die Signierung von DKIM übernommen, aber jetzt möchte ich Postfix loswerden und einfach Nodemailer verwenden, um E-Mails über Amazon SES zu senden.

Mein einziges Problem ist jetzt eine Möglichkeit zu finden, E-Mails innerhalb von Nodejs zu signieren. Ich habe darüber nachgedacht, einen opendkim-Befehl mit "exec" im Knoten auszuführen, aber ich konnte das nicht herausfinden. Auch bei der Suche scheint es keine Module zu geben.

Kann mir jemand dabei helfen?

Antwort

8

Neueste Version von Nodemailer unterstützt DKIM-Signing aus der Box, auch mit SES getestet.

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, ich war mir dessen nicht bewusst. Ich danke Ihnen für das Teilen. – Ryan

+1

Sieht aus wie in NM v1.8 sie ändern es, um nodemailer-dkim NPM zu verwenden –

5

können Sie bei https://gist.github.com/2198497 eine Implementierung finden, die ich entwickelt habe, um Mails zu dkim-sign über SES gesendet. Es ist stark von der PHP-Implementierung von Ahmad Amarullah inspiriert, die hier gefunden wurde: http://code.google.com/p/php-mail-domain-signer/. Ich bin mir bewusst, dass der Code nicht sauber ist, aber es sollte Ihnen helfen, loszulegen. Die übermittelten Mails werden von gmail und yahoo als korrekt angesehen. Zögere nicht, wenn du Fragen hast/es nicht zur Arbeit bringen kannst.

+1

Sie rocken! Vielen Dank dafür. Sie sollten vielleicht darüber nachdenken, es zu npm hinzuzufügen. – Ryan