Bitte bare mit mir, wie ich ein Neuling zu Nodejs bin und versuche, es durch Bezugnahme auf einige Artikel zu lernen.NodeJS: Zeitplan E-Mail mit Agenda
Ich versuche, geschickt mit NodeMailer und Agenda eine E-Mail zu planen, aber ich sehe nichts mit dem Code unten geschieht in 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...');
Als ich führen Sie den obigen Code mit node index.js
, ich sehe die folgende Konsolenmeldung
Wait 10 seconds...
Grundsätzlich versuche ich, die E-Mail-Funktionalität so zu planen, dass sie alle 5 Sekunden ausgeführt wird.
Wo mache ich mich falsch?
EDIT: Es scheint im Vergleich mit der Job-Implementierung zu sein:
agenda.every('5 seconds', jobName);
ich den Job Objekt nach der Tat muß so aber, wenn es ein Weg gibt, dass den obigen Befehl ausgeführt wird, das würde zu bekommen eine akzeptable Antwort sein.
ich nicht beziehe mich hier auf Mongo, nur SMTP-Server – Kanchana
ignoriert meinen anderen Kommentar, ich dachte, dass ich in einer ganz anderen Frage. Die Agenda beruht auf Mongo. Dort speichert es alle seine Jobs. Wenn du also keinen Mongo aufstellst, werden sie nicht laufen. – user1427105