2016-08-12 14 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-server создает его на localhost, правда? – 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); });