我正在使用 Nodemailer Node.js 模块与 sendmail 交互。但是,当通过 Gmail 帐户访问时,我的电子邮件会直接进入垃圾邮件文件夹。为什么我的电子邮件是垃圾邮件?它一定与电子邮件的标题有关,但我不知道它可能是什么。
我不太熟悉电子邮件和垃圾邮件过滤器寻找什么,所以有人可以向我提供一些有关注意事项的详细信息吗?
谢谢阅读。:)
我正在使用 Nodemailer Node.js 模块与 sendmail 交互。但是,当通过 Gmail 帐户访问时,我的电子邮件会直接进入垃圾邮件文件夹。为什么我的电子邮件是垃圾邮件?它一定与电子邮件的标题有关,但我不知道它可能是什么。
我不太熟悉电子邮件和垃圾邮件过滤器寻找什么,所以有人可以向我提供一些有关注意事项的详细信息吗?
谢谢阅读。:)
这里有几个原因: http: //www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some-email-through-code.html
还有IP地址的黑名单。来自这些的任何内容都将被忽略或视为垃圾邮件。如果您的电子邮件是从似乎没有链接到发件人地址的服务器发送的,那么您也会遇到潜在的问题。
检测垃圾邮件并尽量不被视为垃圾邮件都是非常重要的事情。这就是为什么很多邮件列表都是通过专业提供商完成的。
我遇到了同样的问题,并且能够通过将“来自”字段更新为这种格式来解决它:
from: 'Sender Name <some-random-email@gmail.com>'
完整代码:
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: false,
requireTLS: true,
auth: {
user: 'some-random-email@gmail.com',
pass: 'pass'
},
from: 'some-random-email@gmail.com'
});
const mailOptions = {
from: 'Sender Name <some-random-email@gmail.com>'
to: 'some-new-random-email@gmail.com',
subject: 'Subject',
text: 'Text'
};
return transporter.sendMail(mailOptions, (error, info) => {
...
});
如果您的 IP 被列入黑名单,您将需要使用第三方电子邮件服务,例如:
检查他们的文档以与您的应用程序集成。
data/mail.private - 更改为您的 Open DKIM 私钥文件所在的位置。
var client = require('nodemailer').createTransport({
secure: false,
pool: true,
host: 'yourdomain.io',
port: app.nconf.get('mail:port'),
auth: {
user: app.nconf.get('mail:user'),
pass: app.nconf.get('mail:pass')
},
dkim: {
domainName: 'yourdomain.io',
keySelector: 'mail',
privateKey: require('fs').readFileSync('data/mail.private', {
encoding: 'utf8'
})
}
})