2017-02-02 12 views
1

Прошу вас, чтобы я был новичком в Nodejs и пытался узнать его, обратившись к некоторым статьям.NodeJS: Расписание по электронной почте с помощью Повестки дня

Я пытаюсь запланировать разослал электронное письмо с помощью NodeMailer и Agenda, однако, я не вижу ничего, что происходит с ниже код в index.js:

var Agenda = require('agenda'); 
 
var agenda = new Agenda(); 
 
const nodemailer = require('nodemailer'); 
 

 
agenda.define('send email', {priority: 'high', concurrency: 10}, function(job, done) { 
 
    // create reusable transporter object using the default SMTP transport 
 
    let transporter = nodemailer.createTransport({ 
 
     service: 'gmail', 
 
     auth: { 
 
      user: '[email protected]', 
 
      pass: 'xxxx' 
 
     } 
 
    }); 
 

 
    // setup email data with unicode symbols 
 
    let mailOptions = { 
 
     from: '"Test" <[email protected]>', // sender address 
 
     to: '[email protected]', // list of receivers 
 
     subject: 'Hello ✔', // Subject line 
 
     text: 'Hello world ?', // plain text body 
 
     html: '<b>Hello world ?</b>' // html body 
 
     }; 
 

 
    // send mail with defined transport object 
 
    transporter.sendMail(mailOptions, function (error, response) { 
 
     console.log('Message sent: ' + response.message); 
 
     transporter.close(); 
 
     done(); 
 
    }); 
 
}); 
 

 
agenda.on('ready', function() { 
 
    agenda.every('5 seconds', 'send email'); 
 
    agenda.start(); 
 
}); 
 

 
agenda.on('start', function (job) { 
 
    console.log("Job %s starting", job.attrs.name); 
 
}); 
 

 
agenda.on('complete', function (job) { 
 
    console.log("Job %s finished", job.attrs.name); 
 
}); 
 

 
console.log('Wait 10 seconds...');

Когда я выполните приведенный выше код, используя node index.js, я вижу следующее консольное сообщение

Wait 10 seconds... 

В основном, я пытаюсь настроить функциональность электронной почты на каждые 5 секунд.

Где я делаю неправильно?

EDIT: Это, как представляется, с выполнением заданий по сравнению с:

agenda.every('5 seconds', jobName); 

мне нужен объект задания после того, как тот факт, хотя, так что если есть способ, чтобы получить, что с запуском следующей команды, которая будет быть приемлемым ответом.

ответ

0

Повестка дня вызывает событие «готово», когда оно успешно устанавливает соединение с монго. Я не вижу, чтобы ты это настраивал. Что-то вроде:

var Agenda = require('agenda'); 
var mongoConnectionString = "mongodb://127.0.0.1/agenda"; 
var agenda = new Agenda({db: {address: mongoConnectionString}}); 
+0

Я имею в виду не Монго здесь, просто SMTP-сервер – Kanchana

+0

Игнорировать другой мой комментарий, я думал, что я был в совершенно другой вопрос. Повестка дня основывается на монго. Здесь хранятся все его задания. Поэтому, если вы не настраиваете монго, они не будут работать. – user1427105

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