我正在编写一个需要能够发送电子邮件的Nodejs应用程序。到目前为止,我已经将Postfix与名为Nodemailer的Nodejs模块结合使用,通过Amazon SES发送我的电子邮件。
Postfix一直在处理DKIM签名,但现在我希望摆脱postfix,只需使用Nodemailer通过Amazon SES发送电子邮件。
我现在唯一的问题是找到一种在Nodejs内签署电子邮件的方法。我曾经想过在节点中使用“exec”运行一个opendkim命令但是却无法解决这个问题。从搜索来看,似乎没有任何模块。
有人可以帮我吗?
答案 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和雅虎认为是正确的。如果您有疑问/无法使其发挥作用,请不要犹豫。