2016-08-12 94 views
2

我试图构建一个应用程序,当某些事件被触发时发送电子邮件。没有收到来自emailjs和smtp服务器的电子邮件 - Nodejs

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

这是代码:

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 <[email protected]>', 
    cc: '', 
    subject: 'Greetings' 
}, function (err, message) { 
    console.log(err || message); 
}); 

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

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

任何想法有关少了什么东西?

感谢

回答

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

感谢您的回答,我试图按照你的回答,但仍然没有奏效。我设置的smtp来自smtp-server模块,它不需要凭证。如何在没有凭据的情况下连接它? – bratibrat

+0

我不确定你是否可以发送邮件没有凭据,我知道在PHP中,你可以发送电子邮件没有凭据,但不确定与node.js,反正,从来没有。 –

0

在emailjs文件主机不能本地主机它应该是这样的:smtp.your-email.com

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

我如何知道smtp主机,据我所知,smtp服务器模块在本地主机上创建它,是真的吗? – bratibrat

0

我使用一个不是非常重要的Gmail帐户,而不是我的测试模块smtp服务器。

首先:需要激活您自担风险作为Gmail的文件中所示的使用不够安全的应用:

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

后:

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

server.send({ 
    text: "Hello world", 
    from: "YOUR_NAME <[email protected]>", 
    to:  "FRIEND_NAME <[email protected]>", 
    subject: "Hello" 
}, function(err, message) { console.log(err || message); }); 
相关问题