2016-12-21 2 views
1

У меня есть новая регистрация пользователя, когда я получаю детали пользователя от клиента. Я отправляю электронную почту группе, чтобы предоставить разрешение пользователю. Ниже код бросает исключение. Любая идея, что реализовано неправильно?Как отправить почту с помощью nodemail и smtp-транспорта?

Я вставил ошибку в вопросе.

Mailer.js

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

var MAIL_SERVER_URL = '127.0.0.0'; 


//establish the transporter 
var transporter = nodemailer.createTransport(smtpTransport({ 
    host: MAIL_SERVER_URL, 
    port: 80, 
    connectionTimeout: 60000, 
})); 

var Mailer = { 
     options: function (mailOptions) { 
     mailOptions.to = '[email protected]'; 
     mailOptions.text = mailOptions.auid + ''+ 'requested access for modeler'; 
     console.log('mailOptions',mailOptions); 
     transporter.sendMail(mailOptions, function(error, info) { 
        if (error) { 
         return console.log(error); 
        } else { 
         console.log('Message sent: ' + info.response); 
        } 
     }); 
     } 
} 



module.exports = Mailer; 

Ошибка

{ [Error: connect EACCES 127.0.0.0:25] 
    code: 'ECONNECTION', 
    errno: 'EACCES', 
    syscall: 'connect', 
    address: '127.0.0.0', 
    port: 80, 
    command: 'CONN' } 

ответ

2

Ваш выход ошибка говорит вам, что nodemailer не может получить доступ к серверу SMTP в 127.0.0.0 на порту 25.

Ваше осуществление nodemailer с использованием SMTP выглядит хорошо, предполагая, что почтовая система, получившая пропуск, имеет свойство from. Вы можете узнать больше о SMTP через nodemailer в the docs.

let nodemailer = require('nodemailer'); 

let MAIL_SERVER_URL = '127.0.0.0'; 
let smtp = nodemailer.createTransport({ 
    host: MAIL_SERVER_URL, 
    connectionTimeout: 60000 
}); 

module.exports = { 
    options: (mailOptions) => { 
     let email = { 
      from: '[email protected]', 
      to: '[email protected]', 
      subject: 'yourEmailSubject' 
      text: `${mailOptions.auid} requested access for modeler` 
     }; 
     smtp.sendMail(email, (err, info) => { 
      if (err) 
       console.log(err); 
      else 
       console.log(`Message sent: ${info.response}`); 

     }); 
    } 
}; 
+0

Я использую 'MAIL_SERVER_URL' для отправки электронной почты. Мне еще нужно свойство 'from', чтобы быть частью mailOptions? в настоящее время из не является свойством mailOptions. – hussain

+0

Да, от отправителя адреса, 'MAIL_SERVER_URL' - это просто местоположение хоста SMTP, который используется для создания вашего почтового транспорта. В вашем коде 'mailOptions' представляет отправление электронной почты с использованием вашего почтового транспорта. – peteb

+0

поэтому от может быть частью 'mailOptions', в детали пользователя у меня есть электронная почта пользователя, которую я могу использовать с адреса, который будет« mailOptions.from » – hussain

Смежные вопросы