My Blog

My WordPress Blog

My Blog

My WordPress Blog

Using Email Queues

To handle high volumes of emails or to ensure reliable delivery, consider using an email queue. Libraries like Bull or Agenda can help with this.

Example using Bull:

Install Bull and Redis:

npm install bull

Set up a Bull queue:

const Bull = require('bull');
const nodemailer = require('nodemailer');
const redis = require('redis');

// Create a Redis client
const redisClient = redis.createClient();

// Create a Bull queue
const emailQueue = new Bull('email', { redis: redisClient });

// Create a transporter object
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
    user: process.env.EMAIL_USER,
    pass: process.env.EMAIL_PASS
}
}); // Process email jobs emailQueue.process(async (job) => {
const { to, subject, text } = job.data;
await transporter.sendMail({ from: process.env.EMAIL_USER, to, subject, text });
}); // Add a job to the queue emailQueue.add({
to: '[email protected]',
subject: 'Queued Email',
text: 'This email was sent using a Bull queue.'
});
Using Email Queues

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top