2016-12-21 3 views
1

Ich habe neue Benutzerregistrierung, sobald ich Benutzerdetails vom Client bekomme Ich sende E-Mail an die Gruppe, um dem Benutzer die Berechtigung zu erteilen. Unter dem Code wird eine Ausnahme geworfen, was ist falsch implementiert?Wie sendMail mit nodemail und smtp transport?

Ich habe Fehler in Frage eingefügt.

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; 

Fehler

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

Antwort

2

Ihre Fehlerausgang sagt Ihnen, dass nodemailer nicht den SMTP-Server 25 an 127.0.0.0 auf Port

Ihre Implementierung von nodemailer zugreifen können SMTP sieht gut aus, vorausgesetzt, die mailOptions, die übergeben werden, haben eine from-Eigenschaft. Sie können mehr über SMTP über den Knotenmailer in the docs lesen.

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

Ich benutze 'MAIL_SERVER_URL', um E-Mails zu senden. Brauche ich noch 'from' Eigenschaft, um Teil von mailOptions zu sein? zur Zeit von ist nicht MailOptions-Eigenschaft. – hussain

+0

Ja, der Absender ist der Absender der Adresse, 'MAIL_SERVER_URL' ist einfach der Speicherort des SMTP-Hosts, der zum Erstellen Ihres E-Mail-Transports verwendet wird. "MailOptions" steht in Ihrem Code für die E-Mail, die mit Ihrem Mail-Transport gesendet wird. – peteb

+0

so aus kann ein Teil von 'mailOptions' sein, im Benutzer-Detail habe ich Benutzer-E-Mail, die ich als Adresse verwenden kann, die' mailOptions.from' – hussain

Verwandte Themen