2014-09-25 15 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); 

Я получаю следующее сообщение об ошибке при переходе к локальной машине:

[Error: No transport method defined] 

Я использую Nodemailer версии 1.4.23 на Windows 7. Что может быть проблема?

+0

Возможно, попробуйте 'service: 'gmail'' и/или попробуйте отправить электронное сообщение за пределы запроса HTTP-сервера. Отверните его до основного примера. –

+0

Спасибо. Написание 'gmail' решило проблему. В их документации упоминается «Gmail». Сообщите им о Гитубе. Я соглашусь, если вы напишете ответ. Это может помочь кому-то в будущем. – rishiag

+0

Я тоже заметил, что первый пример имел «Gmail», в то время как другой пример на странице имел «gmail». Рад, что это помогло. –

ответ

3

В их первоначальном примере упоминается Gmail для обслуживания, если он должен быть gmail на другие приведенные примеры. Кажется, это проблема с документацией.

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