从我的服务器通过nodemailer发送的电子邮件是垃圾邮件:(未知发件人)

时间:2017-08-08 21:45:18

标签: node.js email nodemailer

首次使用Node并使用电子邮件配置。我下载了这个application from here,它有效(使用mustache.js为电子邮件生成模板),但测试邮件最终出现在我的垃圾邮件中。

from:   via vps1234.inmotionhosting.com 
to: thisisme@gmail.com
date:   Tue, Aug 8, 2017 at 5:30 PM
subject:    Thanks! and review your experience
mailed-by:  vps1234.inmotionhosting.com
security:    Standard encryption (TLS) Learn more

-

var nodemailer = require('nodemailer'); 
let transporter = nodemailer.createTransport({
      service: ' ',
      secure: false,  
      port: 25,
      auth: { 
            user: 'thisisme@mydomain.com',
            pass: 'password1234'
        },
      tls: {
        rejectUnauthorized: false,
    }
 }),


EmailTemplate = require('email-templates').EmailTemplate,
path = require('path'),
Promise = require('bluebird');

let users = [
    {
        name: 'John',
        note: 'I found your purse',
        email: 'recipient@gmail.com',
    }
];



function sendEmail (obj) {
    return transporter.sendMail(obj);
}

function loadTemplate (templateName, contexts) {
    let template = new EmailTemplate(path.join(__dirname, 'templates', templateName));
    return Promise.all(contexts.map((context) => {
        return new Promise((resolve, reject) => {
            template.render(context, (err, result) => {
                if (err) reject(err);
                else resolve({
                    email: result,
                    context,
                });
            });
        });
    }));
}

loadTemplate('welcome', users).then((results) => {
    return Promise.all(results.map((result) => {
        sendEmail({
            to: result.context.email,
            from: 'Me :)',
            subject: result.email.subject,
            html: result.email.html,
            text: result.email.text,
        });
    }));
}).then(() => {
    console.log('Yay!');
});

这是Nodemailer样板文件,我在我的服务器上也进行了测试,它运行正常,电子邮件没有被标记:

var nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
    service: ' ',
    secure: false,
    port: 25,
    auth:{
        user: 'thisisme@mydomain.com',
        pass: 'password1234'
    },
    tls: {
        rejectUnauthorized: false,
    }
});


let helperOptions = {
    from: '<thisisme@mydomain.com>',
    to: 'recipient1234@gmail.com',
};

transporter.sendMail(helperOptions, (error, info) =>{
    if(error){return alert(error);}
    console.log("sent" . info);
})

1 个答案:

答案 0 :(得分:0)

标记为垃圾邮件的邮件并不是生成它的代码的功能,而是其他一些功能,例如:

  • 实际内容(文字,链接等)
  • 来自
  • 的域名

第一个问题是你必须要玩的东西。有一些服务,如MailMonitor和其他可以帮助您调整内容,以了解gmail和其他人如何处理它。措辞,HTML与纯文本,链接与无等等都起作用。

就域名而言,您需要设置SPF(发件人政策框架)和DKIM条目,以便将您的域名作为正确的发件人进行验证。 &#34;未知发件人&#34;很可能是缺少SPF记录。

对于SPF,这里是article。 对于DKIM,another

请注意,我只是用Google搜索 - 它们似乎是好文章,但我相信还有其他很好的资源。

它的要点是,您要在DNS中创建几个TXT条目。 SPF发生器等工具可以帮助您解决这个问题。它并不像听起来那么复杂。

一旦完成,您可能仍然会收到垃圾邮件,但它肯定会有所帮助。您可以尝试使用Amazon SESSendGrid这样的服务,这些服务可能会提供更好的发送效果&#34;比你当前的SMTP服务器。