【问题标题】:AWS SES from NodeJS not DKIM signed?来自 NodeJS 的 AWS SES 没有 DKIM 签名?
【发布时间】:2017-07-14 18:26:41
【问题描述】:

我正在使用 nodemailer 通过 SES 发送电子邮件

const nodemailer = require('nodemailer')
const sesTransport = require('nodemailer-ses-transport')

const transporter = nodemailer.createTransport(sesTransport({
  accessKeyId: '...',
  secretAccessKey: '...',
  region: 'us-east-1'
}))

当我尝试从 AWS SES Dashboard 发送测试电子邮件时,它可以正常工作。但是当我通过代码发送时,它会进入垃圾邮件。我已经按照步骤“启用简易 DKIM”http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html。当我在 AWS Dashboard 上检查 DKIM 的验证状态时,它已验证。通过代码发送时,我是否需要明确签署电子邮件?在https://nodemailer.com/dkim/ 的示例中,我需要一个私钥。是哪个私钥?我在哪里得到它?另外,我在 domainName 和 keySelector 中输入了什么值?

let transporter = nodemailer.createTransport({
    service: 'Gmail',
    dkim: {
        domainName: 'example.com',
        keySelector: '2017',
        privateKey: '-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBg...'
    }
});

【问题讨论】:

  • 通过代码发送电子邮件时是否需要明确签名? 绝对不需要。您是否检查并比较了两封电子邮件之间的标头(在您的电子邮件客户端中)?进入垃圾邮件文件夹的原因有很多,与 DKIM 无关。
  • @Michael-sqlbot 如何比较标头?你的意思是发件人的查看详细信息?我注意到通过代码发送的电子邮件缺少字段签名。看起来库nodemailer没有正确签名,我所做的是直接使用AWS SDK并调用setIdentityDkimEnabled,它现在可以使用
  • 我指的是比较您收到的邮件中的标题。例如,在桌面浏览器上的 GMail 中,这称为“显示原件”。
  • @Michael-sqlbot,好的,所以有区别。标记为垃圾邮件的 nodemailer 发送的电子邮件被列为SPF: NEUTRAL with IP X.X.X.X AWS SDK 直接发送的电子邮件显示为:SPF: PASS with IP X.X.X.X,DKIM: PASS with domain X 似乎 nodemailer 没有正确签署我的电子邮件。

标签: node.js amazon-web-services amazon-ses


【解决方案1】:

好的,我可以关闭它。看来 nodemailer 没有使用 DKIM 正确签署电子邮件。直接使用 AWS SDK 并调用 setIdentityDkimEnabled 来启用 D​​KIM 可以解决问题。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2017-06-16
    • 1970-01-01
    • 2012-04-05
    • 2017-11-09
    • 1970-01-01
    • 2019-03-24
    • 2017-05-21
    • 2021-03-16
    相关资源
    最近更新 更多