Электронная почта, отправленная через nodemailer, попадает в спам для Gmail

Я отправляю электронное письмо через nodemailer, оно попадает в почтовый ящик Gmail, если я запускаю с локального сервера, но попадает в спам Gmail, если я запускаю скрипт с сервера Microsoft Azure. вот мой сценарий

var nodemailer = require('nodemailer');
var EmailTemplates = require('swig-email-templates');
var smtpConfig =  {
        service: 'smtp.office365.com',
        host: 'smtp.office365.com',
        port: 587,
        starttls: {
            enable: true
        },
        secureConnection: true,
        auth: {
            user: '[email protected]',
            pass: 'zzzzzz'
        }
    }

var templates = new EmailTemplates();  
var transporter = nodemailer.createTransport(smtpConfig);   

var context = {
  username:'Rajesh',
  email:'[email protected]',
  link : 'www.google.co.in'
};

templates.render('activate_email.html', context, function(err, html,text, subject) {    

  transporter.sendMail({
    from: '"Product Name????" <[email protected]>', // sender address
    to: '[email protected]',
      subject: 'Account activation',
      html: html,
      text:text    
  });    
});

person Rajesh Nasit    schedule 15.11.2016    source источник
comment
Я следовал формату электронной почты, указанному в этом ответе, и он перестал отмечать мою электронную почту как спам: quora.com/   -  person Germa Vinsmoke    schedule 14.07.2019


Ответы (5)


На самом деле не существует простых однострочных решений для вашей проблемы :) Это может произойти по множеству причин, и вот некоторые из них:

  • Ваш хост помечен как спам - это происходит, если вы не подтвердили свою электронную почту или отправляете слишком много писем с одного и того же хоста. Виртуальный хостинг обычно помечается как таковой, поэтому почтовый сервер регулярно отмечает его как спам.

  • Ваше поле from отличается от того, которое вам разрешено использовать - поскольку я вижу, что вы используете smtp, существуют строгие правила для почты, которую вы можете отправлять. Конечно, вы всегда можете отправить электронную почту с [email protected], но, поскольку хостом SMTP является не facebook.com, ваша электронная почта наверняка будет помечена как спам.

  • Вы можете подписывать свое электронное письмо во многих различных письмах, заверяя серверы, что это электронное письмо отправлено от вас и имеет надлежащую подпись. Узнайте в Интернете, как это сделать.

  • Во время разработки вы отправляли множество одинаковых электронных писем - отправка одного и того же «тестового» электронного письма является частой причиной того, что ваши электронные письма попадают в черный список.

  • В теме есть смайлы - это не 100% причина, но серверы часто помечают такие письма как спам, особенно в других полях (например, from)

К сожалению, как я уже сказал, настоящей причины нет, их может быть много. Надеюсь, это хоть немного поможет :)

person Andrey Popov    schedule 18.11.2016
comment
Я нахожусь на heroku, использую gmail, все правильно (от того же, что и моя учетная запись gmail, без эмодзи и т. д.) есть ли решение? - person ChiKa LiO; 26.08.2019

Пожалуйста, избавьтесь от ???? и попробуйте отправить его еще раз. Однажды я прочитал в статье, что почтовым клиентам не нравятся эти значки, потому что их используют многие спамеры.

Попробуйте отправить его на несколько учетных записей Gmail. Кроме этого, с кодом все в порядке. Если вы используете общий хостинг или локальный хост, он также может попасть в папку нежелательной почты. В этом случае вам нужно будет рассмотреть возможность отправки электронных писем с другого IP-адреса, предпочтительно в той же стране, где вы будете отправлять электронные письма.

Но сначала попробуйте удалить этот значок!

PS. Я бы ответил на этот вопрос как комментарий, но не могу из-за низкой репутации.

person Arnold    schedule 15.11.2016
comment
Я удалил, но проблема не исчезла. но если я удалил ссылку из электронной почты, она заработает. Итак, что может быть решением проблемы со связью - person Rajesh Nasit; 16.11.2016
comment
проблема может быть в домене, на который он указывает, или в тексте в ‹a›. Попробуйте использовать другой домен, например ссылку на google.com или что-то в этом роде. И используйте текстовый Google, попробуйте, если это сработает. - person Arnold; 16.11.2016

в моем случае мне нужно было указать форму, from need to be = to user mail

auth: {
  user: "[email protected]",
  pass: "password",
      }, 
from: [email protected], 
person asli    schedule 01.09.2020
comment
меня устраивает :) - person Creature; 13.12.2020

Поздно на вечеринку ..

Попробуйте добавить как HTML, так и текстовую версию в свой emailConfig, как показано ниже. Таким образом письмо попадет во входящие. У меня это сработало.

var emailOptions = {
from: '[email protected]',
to: '[email protected]',
cc:'[email protected], [email protected], [email protected]',
    bcc:'[email protected]',
    subject: 'xxxxxxxxxx',
    /* Adding HTML and Text Version, so the email will not land up in the Spam folder */
    html: 'Hello Team! <br><br>Please find attached...<br><br>Thanks,<br>XXXXX',
    text: 'Hello Team! <br><br>Please find attached...<br><br>Thanks,<br>XXXXX',
    attachments: [{
        // file on disk as an attachment, concatenating the file extension separately since NODE is not renaming the file properly with fs.renameSync
        filename: finalFileNameWithoutExt + '.xlsx',
        path: reportsLocationPathWithYearMonth + finalFileNameWithoutExt + '.xlsx' // stream this file
    }]
};
person adi    schedule 01.07.2021

HTML отправляется в спам, а обычный текст - нет

person Ethan SK    schedule 05.04.2021
comment
Текст также попадает в спам, но не для учетных записей Gmail, а для других учетных записей электронной почты. - person Jendorski Labs; 16.07.2021