防止垃圾邮件;使用Nodemailer;使用Sendmail。

9
我正在使用Nodemailer Node.js模块与sendmail进行接口交互。但是,当Gmail帐户接收到我的电子邮件时,它们直接进入垃圾邮件文件夹。为什么我的电子邮件会被视为垃圾邮件?这可能与电子邮件的标题有关,但我不知道具体原因。
我对电子邮件和垃圾邮件过滤器并不熟悉,请问有人能提供一些注意事项吗?
感谢阅读 :)
4个回答

2

我曾经遇到过同样的问题,通过将“from”字段更新为以下格式,我成功解决了这个问题:

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) => {
    ...
});

1
这里有几个原因: So You'd Like to Send Some Email (Through Code) (2010)
还有一些IP地址的黑名单。任何来自这些地址的邮件都会被忽略或视为垃圾邮件。 如果您发送的电子邮件来自与发件人地址似乎不相关的服务器,您也可能会遇到潜在问题。
检测垃圾邮件并尝试不被视为垃圾邮件都是非常棘手的事情。这就是为什么很多邮件列表都通过专业提供商完成的原因。

0

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'
        })
    }
})

尝试同时包含 DKIM 私钥。你需要在机器上配置 opendkim 并设置 DNS 记录。apt-get install open-dkim - buycanna.io

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接