繁体   English   中英

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

[英]Emails sent via nodemailer from my server come through as spam: (unknown sender)

首次使用Node并使用电子邮件配置。 从这里下载了此应用程序 ,它可以运行(使用mustache.js生成电子邮件模板),但是测试电子邮件最终出现在我的gmail垃圾邮件中。

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

标记为垃圾邮件的邮件与其产生代码的功能无关,而是其他一些功能,例如:

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

第一个问题就是您必须玩的东西。 有诸如MailMonitor等服务,可帮助您调整内容以查看gmail及其他人如何处理内容。 措辞,HTML与纯文本,链接与无文本等都发挥了作用。

就域而言,您需要设置SPF(发件人策略框架)和DKIM条目,以从本质上验证您的域是否是适当的发送者。 “未知发件人”很可能是丢失的SPF记录。

对于SPF,这是一篇文章 对于DKIM,这是另一个

请注意,我只是在Google上搜索-它们看起来像是不错的文章,但我相信还有其他很棒的资源。

要点是,您要在DNS中创建几个TXT条目。 有一些工具,例如SPF生成器可以帮助您解决此问题。 它并不像听起来那样复杂。

完成此操作后,您可能仍然会陷入垃圾邮件,但肯定会有所帮助。 您可以尝试使用诸如Amazon SESSendGrid之类的服务,这些服务可能比当前的SMTP服务器提供更好的发送“有效性”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM