如何使用 nodemailer 启用 DKIM 发送直接电子邮件?

How to send direct email with DKIM enabled with nodemailer?

如何在启用 DKIM 的情况下通过 nodemailer 直接发送电子邮件?

我试过了

const nodemailer = require('nodemailer')
const directTransport = require('nodemailer-direct-transport')

const transporter = nodemailer.createTransport(
  directTransport({
    dkim: {
      domainName: "mydomain.com",
      keySelector: "mail",
      privateKey: "<generated private key>"
    }
  }))

require('express')().get('/test', (req, res, next) => {
  console.log('sending mail')
  mailer.sendMail({
    from: 'support@mydomain.com',
    to: 'pmmEoRzqH5EyTO@dkimvalidator.com',
    subject: 'test email',
    html: 'Email content'
  }, (err, reply) => {
    console.log('email sent')
    console.log(err && err.stack)
    console.dir(reply)
  })
  res.send('test').end()
})

I also added the public key as TXT record to my DNS panel.

电子邮件已发送,但我在 http://dkimvalidator.com/results

查看时没有 DKIM

DKIM Information: DKIM Signature

This message does not contain a DKIM Signature

有人成功过吗?这看起来是一种无需设置 SMTP 服务器即可发送电子邮件的直接廉价方式,但我没有看到任何关于此的 post。

最后,我找到了自己的解决方案。

nodemailer 是个大项目,但看起来缺少维护者。非错误报告问题默认关闭。

我切换到 sendmail 然后一切都很顺利