簡體   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