2014-09-25 66 views
2

这是Nodemailer的一个基本示例。无法使用Nodemailer发送邮件

var http = require('http'); 
var port = process.env.PORT || 8080; 
var async = require('async'); 
var nodemailer = require('nodemailer'); 

// create reusable transporter object using SMTP transport 

    var mailOptions = { 
     from: '*********', // sender address 
     to: '[email protected]', // list of receivers 
     subject: 'Hello ✔', // Subject line 
     text: 'Hello world ✔', // plaintext body 
     html: '<b>Hello world ✔</b>', // html body 
     attachments: [ 
      { // utf-8 string as an attachment 
       filename: 'text1.txt', 
       content: 'hello world!' 
      }] 
    }; 
    var transporter = nodemailer.createTransport({ 
     service: 'Gmail', 
     auth: { 
      user: '*******', 
      pass: '****' 
     } 
    }); 
    // send mail with defined transport object 

    var server = http.createServer(function(request, response) { 
     if (request.url === '/favicon.ico') { 
     response.writeHead(200, {'Content-Type': 'image/x-icon'}); 
     response.end(); 
     return; 
     } 
     response.writeHead(200, { 
      "Content-Type": "text/plain" 
     }); 

     transporter.sendMail(mailOptions, function(error, info){ 
     if(error){ 
      console.log("error is " ,error); 
     }else{ 
      console.log('Message sent: ' + info.response); 
     } 
    }); 
     response.end("Hello World\n"); 
    }).listen(port); 

    console.log("Node server listening on port " + port); 

我收到以下错误要去为localhost:

[Error: No transport method defined] 

我使用Nodemailer 1.4.23版本的Windows 7可能是什么问题呢?

+0

也许尝试'服务:'gmail''和/或尝试在HTTP服务器请求之外发送电子邮件。把它归结为基本的例子。 – 2014-09-25 06:02:59

+0

谢谢。编写'gmail'解决了这个问题。他们的文档提到了Gmail。将在Github上通知他们。如果你写出答案,我会接受。它可能在未来帮助某人。 – rishiag 2014-09-25 06:20:36

+0

我也注意到第一个例子有'Gmail',而另一个例子有'gmail'。很高兴帮助。 – 2014-09-25 06:22:19

回答

3

他们的初始示例似乎提供Gmail服务,而应该提供的服务为gmail。似乎是一个文档问题。