Registry / messaging / nodemailer-sequelize-queue

nodemailer-sequelize-queue

JSON →
library0.1.6jsnpmunverified

Queue emails for delayed processing using Nodemailer for delivery, Sequelize for database persistence, and node-cron for scheduling. Current version 0.1.6 (stable, low release cadence). Supports MySQL dialect by default, accepts an existing Sequelize instance or credentials. Provides automatic retry with configurable max attempts. Differentiator: integrates three libraries into a simple queue workflow without external brokers like Redis.

npm install nodemailer-sequelize-queue
INSTALL
IMPORT
SIG · NODEMAILER-SEQUELI
N
nodemailer-sequelize-queue
messagingjavascriptv0.1.6
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

NodemailerSequelizeQueue
import NodemailerSequelizeQueue from 'nodemailer-sequelize-queue'
const { NodemailerSequelizeQueue } = require('nodemailer-sequelize-queue')
Default export (ESM). CommonJS destructuring will yield undefined.
NodemailerSequelizeQueue
const NodemailerSequelizeQueue = require('nodemailer-sequelize-queue').default
const NodemailerSequelizeQueue = require('nodemailer-sequelize-queue')
In CommonJS, use .default to get the constructor.
NodemailerSequelizeQueue
import NodemailerSequelizeQueue from 'nodemailer-sequelize-queue'
import { NodemailerSequelizeQueue } from 'nodemailer-sequelize-queue'
Named import will fail; it's a default export.

Initializes the queue with database and SMTP credentials, starts the cron scheduler, and queues an email.

import NodemailerSequelizeQueue from 'nodemailer-sequelize-queue'; const dbCredentials = { config: { username: process.env.DB_USER ?? '', password: process.env.DB_PASS ?? '', database: process.env.DB_NAME ?? '', host: process.env.DB_HOST ?? 'localhost', dialect: 'mysql', }, }; const smtpCreds = { host: process.env.SMTP_HOST ?? 'smtp.example.com', port: Number(process.env.SMTP_PORT) || 465, }; const queue = new NodemailerSequelizeQueue(dbCredentials, smtpCreds, { expression: '*/5 * * * *', maxAttempts: 3, }); queue.initScheduler(); queue.queueMail({ email_from: 'sender@example.com', email_to: 'recipient@example.com', subject: 'Test', html: '<p>Hello</p>', });
Debug
Known issues
gotchaPackage version 0.x is pre-1.0; API may break without major version bump.
fix
Pin version in package.json and test upgrades thoroughly.
affects: >=0.0.0 <1.0.0
gotchaMust install Sequelize dialect driver separately (e.g., mysql2).
fix
Install the appropriate driver: `npm install mysql2` for MySQL.
affects: >=0.0.0
gotchaqueue.initScheduler() should be called only once; multiple calls start duplicate cron jobs.
fix
Call initScheduler() once at application startup, not per email.
affects: >=0.0.0
gotchaThe expression option is a cron expression (not a Nodemailer expression). The README typo may cause confusion.
fix
Use standard cron syntax (e.g., '*/1 * * * *' for every minute).
affects: >=0.0.0
brokenWhen using CommonJS require(), must use .default to get the constructor.
fix
Use require('nodemailer-sequelize-queue').default.
affects: >=0.0.0
Errors
Common errors & fixes
TypeError: NodemailerSequelizeQueue is not a constructor
Using CommonJS require() without .default.
fix
Use const NodemailerSequelizeQueue = require('nodemailer-sequelize-queue').default;
SequelizeConnectionError: Client does not support authentication protocol requested by server; consider upgrading MySQL client
Outdated MySQL client or missing authentication plugin.
fix
Install mysql2: npm install mysql2 and set dialect: 'mysql2' in config.
Error: Cannot find module 'mysql2'
Missing dialect driver.
fix
Install the appropriate driver: npm install mysql2 (for MySQL).
TypeError: queue.initScheduler is not a function
Using wrong import (e.g., named import instead of default).
fix
Use import NodemailerSequelizeQueue from 'nodemailer-sequelize-queue'.
Upgrade
Version history
0.1.6latest on npm
Audit
Dependencies
nodemailerrequiredCore email sending engine.
sequelizerequiredORM for database queue storage; dialect modules must be installed separately.
node-cronrequiredScheduler for cron-based mail processing.
Agent activity
13 hits · last 30 days
node
10
OpenAI (training)
1
Resources
nodemailer-sequelize-queue — npm install nodemailer-sequelize-queue · libregistry