【发布时间】: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.XAWS SDK 直接发送的电子邮件显示为:SPF: PASS with IP X.X.X.X,DKIM: PASS with domain X似乎 nodemailer 没有正确签署我的电子邮件。
标签: node.js amazon-web-services amazon-ses