2017-02-24 40 views
0

我使用nodemailer使用SES来自NodeJS的AWS SES没有DKIM签名?

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

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

当我尝试从AWS SES控制台发送测试邮件发送电子邮件,它的工作原理。但是当我通过代码发送时,它会进入垃圾邮件。我已经按照步骤“启用easy 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...' 
    } 
}); 
+1

*我是否需要在通过代码发送时明确签名电子邮件?*当然不是。您是否检查并比较了两封电子邮件之间的标题(在您的电子邮件客户端中)?垃圾邮件文件夹中的着陆可能出于任何原因,与DKIM无关。 –

+0

@ Michael-sqlbot如何比较标题?你的意思是发送者的查看详情吗?我注意到通过代码发送的电子邮件缺少由字段签名。看起来像库nodemailer没有正确地签名,我所做的是直接使用AWS SDK并调用'setIdentityDkimEnabled',它现在可以工作 –

+0

我指的是比较收到的消息中的标题。例如,在桌面浏览器上的GMail中,这称为“显示原始”。 –

回答

0

好吧,我可以关闭它。看来nodemailer没有使用DKIM正确签署电子邮件。直接使用AWS SDK并调用setIdentityDkimEnabled来启用DKIM修复事件。