Search code examples
javascriptnode.jsamazon-sesdkim

Signing emails with DKIM in Node.js


I'm writing a Nodejs app that needs to be able to send email. So far, I've used Postfix in conjunction with a Nodejs module called Nodemailer to send my email through Amazon SES.

Postfix has been handling the DKIM signing, but now I wish to get rid of postfix and just use Nodemailer to send emails through Amazon SES.

My only problem now is finding a way to sign emails within Nodejs. I've thought of running a opendkim command using "exec" in node but haven't been able to figure that out. From searching, there looks to be no modules for this either.

Can anyone help me on this?


Solution

  • Latest version of Nodemailer supports DKIM signing out of the box, also tested with 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(...);