通过nodemailer发送的电子邮件会转入垃圾邮件以获取gmail

时间:2016-11-15 11:24:06

标签: node.js email gmail spam nodemailer

我通过nodemailer发送电子邮件如果我从本地服务器运行它进入gbox的收件箱但是如果我从microsoft azure服务器运行脚本则进入gmail的垃圾邮件。 以下是我的剧本

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: 'xxxxx@yyyy.com',
            pass: 'zzzzzz'
        }
    }

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

var context = {
  username:'Rajesh',
  email:'xxxxx@gmail.com',
  link : 'www.google.co.in'
};

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

  transporter.sendMail({
    from: '"Product Name" <no-reply@xxxxx.com>', // sender address
    to: 'xxxx@gmail.com',
      subject: 'Account activation',
      html: html,
      text:text    
  });    
});

5 个答案:

答案 0 :(得分:8)

事实是,对于你的问题,没有简单的一行解决方案:)有很多原因导致这种情况发生,以下是其中一些:

  • 您的主机被标记为垃圾邮件 - 如果您未验证电子邮件或从同一主机发送过多电子邮件,则会发生这种情况。共享主机通常标记为这样,因此邮件服务器会定期将其标记为垃圾邮件

  • 您的"AspectAPIEnv": { "Type": "AWS::ElasticBeanstalk::Environment", "Properties": { "ApplicationName": "application-name", "EnvironmentName": "environment-name", "SolutionStackName": "64bit Amazon Linux 2016.09 v3.1.0 running Node.js", "Tier": { "Name": "WebServer", "Type": "Standard" }, "OptionSettings": [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "EC2KeyName", "Value": "ec2-key" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "ImageId", "Value": "ami-d8356acf" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "InstanceType", "Value": "t2.micro" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": { "Ref": "APIInstanceSG" } }, { "Namespace": "aws:autoscaling:trigger", "OptionName": "UpperThreshold", "Value": "6000000" }, { "Namespace": "aws:autoscaling:updatepolicy:rollingupdate", "OptionName": "MaxBatchSize", "Value": "1" }, { "Namespace": "aws:autoscaling:updatepolicy:rollingupdate", "OptionName": "MinInstancesInService", "Value": "1" }, { "Namespace": "aws:autoscaling:updatepolicy:rollingupdate", "OptionName": "RollingUpdateEnabled", "Value": "true" }, { "Namespace": "aws:autoscaling:updatepolicy:rollingupdate", "OptionName": "RollingUpdateType", "Value": "Health" }, { "Namespace": "aws:elasticbeanstalk:command", "OptionName": "BatchSize", "Value": "30" }, { "Namespace": "aws:elasticbeanstalk:container:nodejs", "OptionName": "NodeVersion", "Value": "6.2.2" }, { "Namespace": "aws:elasticbeanstalk:environment", "OptionName": "ServiceRole", "Value": "aws-elasticbeanstalk-service-role" }, { "Namespace": "aws:elasticbeanstalk:healthreporting:system", "OptionName": "SystemType", "Value": "enhanced" }, { "Namespace": "aws:elasticbeanstalk:managedactions", "OptionName": "ManagedActionsEnabled", "Value": "true" }, { "Namespace": "aws:elasticbeanstalk:managedactions", "OptionName": "PreferredStartTime", "Value": "SUN:09:02" }, { "Namespace": "aws:elasticbeanstalk:managedactions:platformupdate", "OptionName": "UpdateLevel", "Value": "minor" }, { "Namespace": "aws:elb:healthcheck", "OptionName": "Interval", "Value": "10" }, { "Namespace": "aws:elb:loadbalancer", "OptionName": "CrossZone", "Value": "true" }, { "Namespace": "aws:elb:loadbalancer", "OptionName": "LoadBalancerHTTPPort", "Value": "80" }, { "Namespace": "aws:elb:loadbalancer", "OptionName": "SecurityGroups", "Value": { "Ref": "APILoadBalancerSG" } }, { "Namespace": "aws:elb:loadbalancer", "OptionName": "ManagedSecurityGroup", "Value": { "Ref": "APILoadBalancerSG" } }, { "Namespace": "aws:elb:policies", "OptionName": "ConnectionDrainingEnabled", "Value": "true" } ], "Tags": [ { "Key": "Name", "Value": "AspectAPIEnv" } ] }, "DependsOn": "RDSInstance" } 字段与您允许使用的字段不同 - 因为我看到您正在使用smtp,因此您可以发送严格的邮件规则。当然,您始终可以发送来自from的电子邮件,但由于您的SMTP主机不是 facebook.com,您的电子邮件肯定会被标记为垃圾邮件

  • 您可以在许多不同的邮件中签署您的电子邮件,确保服务器发送此电子邮件并且具有适当的签名。在线查看方法。

  • 在开发过程中,您发送了大量相似的电子邮件 - 发送相同的&#34;测试&#34;电子邮件是您的电子邮件被列入黑名单的常见原因

不幸的是,正如我所说,没有一个真正的原因,可能会有很多原因。我希望这至少有一点帮助:))

答案 1 :(得分:4)

请摆脱并尝试再次发送。我曾经读过一篇文章,因为很多垃圾邮件发送者正在使用它们,因此电子邮件客户不喜欢这些图标。

尝试将其发送到多个Gmail帐户。除此之外,代码没有任何问题。如果您在共享主机或本地主机上,它也可以进入垃圾文件夹。在这种情况下,您将不得不考虑从不同的IP发送电子邮件,首选的国家/地区与发送电子邮件的国家/地区相同。

但首先尝试删除该图标!

PS。我会把这个答案作为评论,但我不能因为低代表。

答案 2 :(得分:3)

在我的情况下,我需要指定表格,从=必须到用户邮件

    if  sign =="+" :
        my_object_cal.soma(number1, number2)
    elif sign == "-" :
        my_object_cal.subtrai(number1, number2)
    elif ...
    else ...

答案 3 :(得分:1)

HTML 会变成垃圾,纯文本不会

答案 4 :(得分:1)

聚会迟到了..

尝试在您的 emailConfig 中同时添加 HTML 和文本版本,如下所示。这样电子邮件就会出现在收件箱中。它对我有用。

999999