7

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

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

我现在唯一的问题是找到一种在 Nodejs 中签署电子邮件的方法。我曾想过在节点中使用“exec”运行 opendkim 命令,但无法弄清楚。通过搜索,似乎也没有适用于此的模块。

谁可以帮我这个事?

4

2 回答 2

11

最新版本的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(...);
于 2012-04-03T09:26:56.520 回答
5

你可以在https://gist.github.com/2198497找到我开发的一个实现,用于对通过 SES 发送的 dkim-sign 邮件进行签名。它受到 Ahmad Amarullah 的 php 实现的极大启发:http ://code.google.com/p/php-mail-domain-signer/ 。我很清楚代码远非干净,但它应该可以帮助您入门。gmail和雅虎认为通过它发送的邮件是正确的。如果您有任何问题/无法使用,请不要犹豫。

于 2012-03-25T17:52:37.743 回答