nodemailer-sequelize-queue
Version:
Queue for mails with nodemailer and cron scheduler
57 lines • 5.94 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = __importDefault(require("../index"));
const dotenv_1 = __importDefault(require("dotenv"));
dotenv_1.default.config();
const auth = {
user: process.env.smtp_user,
pass: process.env.smtp_pass,
};
// See https://www.npmjs.com/package/nodemailer for more options
const smtpCreds = {
host: process.env.smtp_host,
port: process.env.smtp_port ? process.env.smtp_port : 465,
secure: true,
auth: auth,
};
const dbCredentials = {
// See https://www.npmjs.com/package/sequelize for more options
config: {
username: process.env.db_username || '',
password: process.env.db_password || '',
database: process.env.db_database || '',
host: process.env.db_host || '',
dialect: 'mysql',
},
// Alternatively you can use existing sequelize instance
// sequelize: SequelizeInstane
};
// Create NodemailerSequelizeQueue instance
const queue = new index_1.default(dbCredentials, smtpCreds, {
// See https://www.npmjs.com/package/nodemailer for more expression options
expression: '*/1 * * * *',
// If -1, will try infinite times
maxAttempts: 2,
logging: true,
});
// Run cron schedule for sending mail (Only one time in root of the system)
queue.initScheduler({ queueLimit: 10 });
// Add mail to queue
queue.queueMail({
email_from: 'test@gmail.com',
email_to: 'test@gmail.com',
subject: 'test subject',
html: 'test message',
attachments: [
{
// Not required (see Nodemailer filename prop)
filename: 'file.jpg',
// Local or remote url (see Nodemailer path prop)
path: 'https://picsum.photos/id/237/200/300',
},
],
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhhbXBsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBK0M7QUFDL0Msb0RBQTJCO0FBQzNCLGdCQUFNLENBQUMsTUFBTSxFQUFFLENBQUE7QUFFZixNQUFNLElBQUksR0FBRztJQUNYLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVM7SUFDM0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUztDQUM1QixDQUFBO0FBRUQsZ0VBQWdFO0FBQ2hFLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVM7SUFDM0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRztJQUN6RCxNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0NBQ1gsQ0FBQTtBQUVELE1BQU0sYUFBYSxHQUFHO0lBQ3BCLCtEQUErRDtJQUMvRCxNQUFNLEVBQUU7UUFDTixRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRTtRQUN2QyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRTtRQUN2QyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRTtRQUN2QyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRTtRQUMvQixPQUFPLEVBQUUsT0FBYztLQUN4QjtJQUNELHdEQUF3RDtJQUN4RCw4QkFBOEI7Q0FDL0IsQ0FBQTtBQUVELDJDQUEyQztBQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLGVBQXdCLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRTtJQUNuRSwyRUFBMkU7SUFDM0UsVUFBVSxFQUFFLGFBQWE7SUFDekIsaUNBQWlDO0lBQ2pDLFdBQVcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDLENBQUE7QUFFRiw0RUFBNEU7QUFDNUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBRXZDLG9CQUFvQjtBQUNwQixLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ2QsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QixRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLElBQUksRUFBRSxjQUFjO0lBRXBCLFdBQVcsRUFBRTtRQUNYO1lBQ0UsOENBQThDO1lBQzlDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLGlEQUFpRDtZQUNqRCxJQUFJLEVBQUUsc0NBQXNDO1NBQzdDO0tBQ0Y7Q0FDRixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTm9kZW1haWxlclNlcXVlbGl6ZVF1ZXVlIGZyb20gJy4uL2luZGV4J1xuaW1wb3J0IGRvdGVudiBmcm9tICdkb3RlbnYnXG5kb3RlbnYuY29uZmlnKClcblxuY29uc3QgYXV0aCA9IHtcbiAgdXNlcjogcHJvY2Vzcy5lbnYuc210cF91c2VyLFxuICBwYXNzOiBwcm9jZXNzLmVudi5zbXRwX3Bhc3MsXG59XG5cbi8vIFNlZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ub2RlbWFpbGVyIGZvciBtb3JlIG9wdGlvbnNcbmNvbnN0IHNtdHBDcmVkcyA9IHtcbiAgaG9zdDogcHJvY2Vzcy5lbnYuc210cF9ob3N0LFxuICBwb3J0OiBwcm9jZXNzLmVudi5zbXRwX3BvcnQgPyBwcm9jZXNzLmVudi5zbXRwX3BvcnQgOiA0NjUsXG4gIHNlY3VyZTogdHJ1ZSxcbiAgYXV0aDogYXV0aCxcbn1cblxuY29uc3QgZGJDcmVkZW50aWFscyA9IHtcbiAgLy8gU2VlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3NlcXVlbGl6ZSBmb3IgbW9yZSBvcHRpb25zXG4gIGNvbmZpZzoge1xuICAgIHVzZXJuYW1lOiBwcm9jZXNzLmVudi5kYl91c2VybmFtZSB8fCAnJyxcbiAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuZGJfcGFzc3dvcmQgfHwgJycsXG4gICAgZGF0YWJhc2U6IHByb2Nlc3MuZW52LmRiX2RhdGFiYXNlIHx8ICcnLFxuICAgIGhvc3Q6IHByb2Nlc3MuZW52LmRiX2hvc3QgfHwgJycsXG4gICAgZGlhbGVjdDogJ215c3FsJyBhcyBhbnksXG4gIH0sXG4gIC8vIEFsdGVybmF0aXZlbHkgeW91IGNhbiB1c2UgZXhpc3Rpbmcgc2VxdWVsaXplIGluc3RhbmNlXG4gIC8vIHNlcXVlbGl6ZTogU2VxdWVsaXplSW5zdGFuZVxufVxuXG4vLyBDcmVhdGUgTm9kZW1haWxlclNlcXVlbGl6ZVF1ZXVlIGluc3RhbmNlXG5jb25zdCBxdWV1ZSA9IG5ldyBOb2RlbWFpbGVyU2VxdWVsaXplUXVldWUoZGJDcmVkZW50aWFscywgc210cENyZWRzLCB7XG4gIC8vIFNlZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ub2RlbWFpbGVyIGZvciBtb3JlIGV4cHJlc3Npb24gb3B0aW9uc1xuICBleHByZXNzaW9uOiAnKi8xICogKiAqIConLFxuICAvLyBJZiAtMSwgd2lsbCB0cnkgaW5maW5pdGUgdGltZXNcbiAgbWF4QXR0ZW1wdHM6IDIsXG4gIGxvZ2dpbmc6IHRydWUsXG59KVxuXG4vLyAgUnVuIGNyb24gc2NoZWR1bGUgZm9yIHNlbmRpbmcgbWFpbCAoT25seSBvbmUgdGltZSBpbiByb290IG9mIHRoZSBzeXN0ZW0pXG5xdWV1ZS5pbml0U2NoZWR1bGVyKHsgcXVldWVMaW1pdDogMTAgfSlcblxuLy8gQWRkIG1haWwgdG8gcXVldWVcbnF1ZXVlLnF1ZXVlTWFpbCh7XG4gIGVtYWlsX2Zyb206ICd0ZXN0QGdtYWlsLmNvbScsXG4gIGVtYWlsX3RvOiAndGVzdEBnbWFpbC5jb20nLFxuICBzdWJqZWN0OiAndGVzdCBzdWJqZWN0JyxcbiAgaHRtbDogJ3Rlc3QgbWVzc2FnZScsXG5cbiAgYXR0YWNobWVudHM6IFtcbiAgICB7XG4gICAgICAvLyBOb3QgcmVxdWlyZWQgKHNlZSBOb2RlbWFpbGVyIGZpbGVuYW1lIHByb3ApXG4gICAgICBmaWxlbmFtZTogJ2ZpbGUuanBnJyxcbiAgICAgIC8vIExvY2FsIG9yIHJlbW90ZSB1cmwgKHNlZSBOb2RlbWFpbGVyIHBhdGggcHJvcClcbiAgICAgIHBhdGg6ICdodHRwczovL3BpY3N1bS5waG90b3MvaWQvMjM3LzIwMC8zMDAnLFxuICAgIH0sXG4gIF0sXG59KVxuIl19