【问题标题】:Signing emails with DKIM in Node.js在 Node.js 中使用 DKIM 签署电子邮件
【发布时间】:2012-04-03 17:26:56
【问题描述】:

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

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

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

谁能帮我解决这个问题?

【问题讨论】:

    标签: javascript node.js amazon-ses dkim


    【解决方案1】:

    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(...);
    

    【讨论】:

    • 看起来在 NM v1.8 中他们将其更改为使用 nodemailer-dkim NPM
    【解决方案2】:

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

    【讨论】:

    • 你摇滚!非常感谢。您也许应该考虑将其添加到 npm。
    猜你喜欢
    • 2017-10-21
    • 2019-10-21
    • 2016-08-25
    • 2018-07-18
    • 2015-10-13
    • 2012-09-02
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    相关资源
    最近更新 更多