没有收到来自emailjs和smtp-server的电子邮件 - Nodejs

时间:2016-08-12 10:00:31

标签: node.js email smtp nodemailer

我正在尝试构建一个在触发某些内容时发送电子邮件的应用。

我没有收到任何错误,但没有收到任何电子邮件到我的收件箱。

这是代码:

SMTP:

var SMTPServer = require('smtp-server').SMTPServer;
var server = new SMTPServer({
    secure: false, authOptional: true
});
server.listen(465);

emailjs:

var email = require('emailjs');

var emailServer = email.server.connect({
    host: 'localhost',
    port: 465,
    ssl: false
});

emailServer.send({
    text: 'Hey howdy',
    from: 'NodeJS',
    to: 'Wilson <person@gmail.com>',
    cc: '',
    subject: 'Greetings'
}, function (err, message) {
    console.log(err || message);
});

我在控制台上看到的输出是:

{ attachments: [],
  alternative: null,
  header:
   { 'message-id': '<1470995427701.0.2864@DESKTOP-M85CNRC>',
     date: 'Fri, 12 Aug 2016 12:50:27 +0300',
     from: '=?UTF-8?Q?NodeJS?= <>',
     to: '=?UTF-8?Q?Wilson?= <person@gmail.com>',
     cc: '',
     subject: '=?UTF-8?Q?Greetings?=' },
  content: 'text/plain; charset=utf-8',
  text: 'Hey howdy' }

有关缺少什么的想法吗?

由于

3 个答案:

答案 0 :(得分:0)

我正在使用nodemailer-smtp-transport并且正在为我工​​作,请按照我在发送邮件的功能中的配置。希望这可能有所帮助。

var nodemailer = require('nodemailer'),
smtpTransport = require("nodemailer-smtp-transport");

//configuration
var transporter = nodemailer.createTransport(smtpTransport ({
        auth: {
            user: user,   //email of sender
            pass: pass    //password of sender
        },
        host: host,    //my email host
        secureConnection: true,
        port: 587,
        tls: {
            rejectUnauthorized: false
        },
    }));    

    var mailOptions = {
        from: user,
        to: to,
        subject: subject,
        text: text
    }

    transporter.sendMail(mailOptions, function(error, info){
         if(error){
           console.log(error);
        }else{
           console.log("success");
        }
    });

答案 1 :(得分:0)

在emailjs文件中,主机不能是 localhost ,它应该是: smtp.your-email.com

var server  = email.server.connect({
   user:    "username", 
   password:"password", 
   host:    "smtp.your-email.com", 
   ssl:     true
});

答案 2 :(得分:0)

我使用的Gmail帐户对我的测试不是很重要,而不是模块smtp-server。

首先:必须按照Gmail文档中的说明自行承担使用安全性较低的应用的风险:

https://myaccount.google.com/u/2/lesssecureapps?pageId=none

<强>后:

var email   = require("emailjs");
var server  = email.server.connect({
   user:    "YOUR_ACCOUNT@gmail.com", 
   password:"YOUR_PASSWORD", 
   host:    "smtp.gmail.com",
   ssl:     true
});

server.send({
   text:    "Hello world", 
   from:    "YOUR_NAME <YOUR_ACCOUNT@gmail.com>", 
   to:      "FRIEND_NAME <FRIEND_ACCOUNT@gmail.com>",
   subject: "Hello"
}, function(err, message) { console.log(err || message); });