在Node.js中使用DKIM签署电子邮件

时间:2012-03-25 03:18:26

标签: javascript node.js amazon-ses dkim

我正在编写一个需要能够发送电子邮件的Nodejs应用程序。到目前为止,我已经将Postfix与名为Nodemailer的Nodejs模块结合使用,通过Amazon SES发送我的电子邮件。

Postfix一直在处理DKIM签名,但现在我希望摆脱postfix,只需使用Nodemailer通过Amazon SES发送电子邮件。

我现在唯一的问题是找到一种在Nodejs内签署电子邮件的方法。我曾经想过在节点中使用“exec”运行一个opendkim命令但是却无法解决这个问题。从搜索来看,似乎没有任何模块。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:8)

Nodemailer的最新版本支持开箱即用的DKIM签名,也经过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(...);

答案 1 :(得分:5)

你可以在https://gist.github.com/2198497找到我开发的通过SES发送的dkim-sign邮件的实现。它受到Ahmad Amarullah在这里发现的php实现的启发:http://code.google.com/p/php-mail-domain-signer/。我很清楚代码远非干净,但它应该可以帮助你开始。通过它发送的邮件被gmail和雅虎认为是正确的。如果您有疑问/无法使其发挥作用,请不要犹豫。