mail-time
Advanced tools
Comparing version 1.2.5 to 1.2.6
@@ -1,1 +0,1 @@ | ||
For full changelog see [releases](https://github.com/VeliovGroup/Mail-Time/releases) in GitHub | ||
For full changelog see [releases](https://github.com/veliovgroup/Mail-Time/releases) in GitHub |
@@ -1,1 +0,1 @@ | ||
For full history see [releases](https://github.com/VeliovGroup/Mail-Time/releases) in GitHub | ||
For full history see [releases](https://github.com/veliovgroup/Mail-Time/releases) in GitHub |
13
index.js
@@ -20,8 +20,2 @@ const JoSk = require('josk'); | ||
const defaultWriteConcern = { | ||
w: 1, | ||
j: true, | ||
wtimeout: 10240 | ||
}; | ||
let equals; | ||
@@ -312,2 +306,3 @@ equals = (a, b) => { | ||
ready(); | ||
cursor.close(); | ||
_logError('[___send] [count] [countError]', countError); | ||
@@ -328,3 +323,3 @@ return; | ||
} | ||
}, defaultWriteConcern, (updateError) => { | ||
}, (updateError) => { | ||
if (count === ++finished) { | ||
@@ -370,3 +365,3 @@ ready(); | ||
} else { | ||
this.collection.deleteOne({ _id: task._id }, defaultWriteConcern, () => { | ||
this.collection.deleteOne({ _id: task._id }, () => { | ||
this.___triggerCallbacks(void 0, task, info); | ||
@@ -385,2 +380,3 @@ }); | ||
}, (forEachError) => { | ||
cursor.close(); | ||
if (forEachError) { | ||
@@ -392,2 +388,3 @@ _logError('[___send] [forEach] [forEachError]', forEachError); | ||
ready(); | ||
cursor.close(); | ||
} | ||
@@ -394,0 +391,0 @@ }); |
{ | ||
"name": "mail-time", | ||
"version": "1.2.5", | ||
"version": "1.2.6", | ||
"description": "Bulletproof email queue on top of NodeMailer with support of multiple clusters and servers setup", | ||
@@ -39,8 +39,8 @@ "main": "index.js", | ||
"type": "git", | ||
"url": "git://github.com/VeliovGroup/Mail-Time.git" | ||
"url": "git://github.com/veliovgroup/Mail-Time.git" | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/VeliovGroup/Mail-Time/issues" | ||
"url": "https://github.com/veliovgroup/Mail-Time/issues" | ||
}, | ||
"homepage": "https://github.com/VeliovGroup/Mail-Time", | ||
"homepage": "https://github.com/veliovgroup/Mail-Time", | ||
"author": "dr.dimitru (https://veliovgroup.com)", | ||
@@ -53,13 +53,13 @@ "license": "BSD-3-Clause", | ||
"deepmerge": "^4.2.2", | ||
"josk": "^2.3.0" | ||
"josk": "^2.4.0" | ||
}, | ||
"devDependencies": { | ||
"bson": "^4.1.0", | ||
"bson": "^4.2.2", | ||
"bson-ext": "^2.0.5", | ||
"chai": "^4.2.0", | ||
"mocha": "^8.1.3", | ||
"mongodb": "^3.6.2", | ||
"nodemailer": "^6.4.11", | ||
"chai": "^4.3.0", | ||
"mocha": "^8.2.1", | ||
"mongodb": "^3.6.4", | ||
"nodemailer": "^6.4.17", | ||
"nodemailer-direct-transport": "^3.3.2" | ||
} | ||
} |
@@ -0,1 +1,2 @@ | ||
[![support](https://img.shields.io/badge/support-GitHub-white)](https://github.com/sponsors/dr-dimitru) | ||
[![support](https://img.shields.io/badge/support-PayPal-white)](https://paypal.me/veliovgroup) | ||
@@ -18,17 +19,17 @@ <a href="https://ostr.io/info/built-by-developers-for-developers"> | ||
- [How it works?](https://github.com/VeliovGroup/Mail-Time#how-it-works) | ||
- [With single SMTP](https://github.com/VeliovGroup/Mail-Time#single-point-of-failure) | ||
- [With multiple SMTP](https://github.com/VeliovGroup/Mail-Time#multiple-smtp-providers) | ||
- [As Micro-Service](https://github.com/VeliovGroup/Mail-Time#cluster-issue) | ||
- [Features](https://github.com/VeliovGroup/Mail-Time#features) | ||
- [Installation](https://github.com/VeliovGroup/Mail-Time#installation) | ||
- [Meteor.js Installation](https://github.com/VeliovGroup/Mail-Time#installation--import-via-npm): as [NPM Package](https://www.npmjs.com/package/mail-time) | ||
- [Meteor.js Installation](https://github.com/VeliovGroup/Mail-Time#installation--import-via-atmosphere): as [Atmosphere package](https://atmospherejs.com/ostrio/mailer) | ||
- [Usage example](https://github.com/VeliovGroup/Mail-Time#basic-usage) | ||
- [API](https://github.com/VeliovGroup/Mail-Time#api) | ||
- [*Constructor*](https://github.com/VeliovGroup/Mail-Time#new-mailtimeopts-constructor) | ||
- [`.send()`](https://github.com/VeliovGroup/Mail-Time#sendmailopts--callback) | ||
- [Default Template](https://github.com/VeliovGroup/Mail-Time#static-mailtimetemplate) | ||
- [Custom Templates](https://github.com/VeliovGroup/Mail-Time#template-example) | ||
- [~92% tests coverage](https://github.com/VeliovGroup/Mail-Time#testing) | ||
- [How it works?](https://github.com/veliovgroup/Mail-Time#how-it-works) | ||
- [With single SMTP](https://github.com/veliovgroup/Mail-Time#single-point-of-failure) | ||
- [With multiple SMTP](https://github.com/veliovgroup/Mail-Time#multiple-smtp-providers) | ||
- [As Micro-Service](https://github.com/veliovgroup/Mail-Time#cluster-issue) | ||
- [Features](https://github.com/veliovgroup/Mail-Time#features) | ||
- [Installation](https://github.com/veliovgroup/Mail-Time#installation) | ||
- [Meteor.js Installation](https://github.com/veliovgroup/Mail-Time#installation--import-via-npm): as [NPM Package](https://www.npmjs.com/package/mail-time) | ||
- [Meteor.js Installation](https://github.com/veliovgroup/Mail-Time#installation--import-via-atmosphere): as [Atmosphere package](https://atmospherejs.com/ostrio/mailer) | ||
- [Usage example](https://github.com/veliovgroup/Mail-Time#basic-usage) | ||
- [API](https://github.com/veliovgroup/Mail-Time#api) | ||
- [*Constructor*](https://github.com/veliovgroup/Mail-Time#new-mailtimeopts-constructor) | ||
- [`.send()`](https://github.com/veliovgroup/Mail-Time#sendmailopts--callback) | ||
- [Default Template](https://github.com/veliovgroup/Mail-Time#static-mailtimetemplate) | ||
- [Custom Templates](https://github.com/veliovgroup/Mail-Time#template-example) | ||
- [~92% tests coverage](https://github.com/veliovgroup/Mail-Time#testing) | ||
@@ -42,4 +43,6 @@ ## Main features: | ||
## How does it work?: | ||
## How does it work? | ||
Redundant solution for email transmission. | ||
### Single point of failure | ||
@@ -121,4 +124,4 @@ | ||
- Support for multiple server setups - "Cluster", Phusion Passenger instances, Load Balanced solutions, etc. | ||
- Emails concatenation by addressee email - Reduce amount of sent email to single user with concatenation, and avoid mistakenly doubled emails | ||
- When concatenation is enabled - Same emails wouldn't be sent twice, if for any reason, due to bad logic or application failure emails is sent twice or more times - here is solution to solve this annoying behavior | ||
- Emails concatenation by addressee email - Reduce amount of sent emails to a single user with concatenation, and avoid mistakenly doubled emails | ||
- When concatenation is enabled - Same emails won't be sent twice, if for any reason, due to bad logic or application failure emails are sent twice or more times - this is solution to solve this annoying behavior | ||
- Balancing for multiple nodemailer's transports, two modes - `backup` and `balancing`. Most useful feature - allows to reduce the cost of SMTP services and add durability. So, if any of used transports are failing to send an email it will switch to next one | ||
@@ -353,3 +356,3 @@ - Sending retries for network and other failures | ||
- `opts.interval` {*Number*} - [Optional] Interval in *seconds* between send re-tries, default - `60` | ||
- `opts.zombieTime` {*Number*} - [Optional] Time in *milliseconds*, after this period - pending email will be interpreted as "*zombie*". This parameter allows to rescue pending email from "*zombie* mode" in case when: server was rebooted, exception during runtime was thrown, or caused by bad logic, default - `32786`. This option is used by package itself and passed directly to [`JoSk` package](https://github.com/VeliovGroup/josk#api) | ||
- `opts.zombieTime` {*Number*} - [Optional] Time in *milliseconds*, after this period - pending email will be interpreted as "*zombie*". This parameter allows to rescue pending email from "*zombie* mode" in case when: server was rebooted, exception during runtime was thrown, or caused by bad logic, default - `32786`. This option is used by package itself and passed directly to [`JoSk` package](https://github.com/veliovgroup/josk#api) | ||
- `opts.keepHistory` {*Boolean*} - [Optional] By default sent emails not stored in the database. Set `{ keepHistory: true }` to keep queue task as it is in the database, default - `false` | ||
@@ -361,4 +364,4 @@ - `opts.concatEmails` {*Boolean*} - [Optional] Concatenate email by `to` field, default - `false` | ||
- `opts.revolvingInterval` {*Number*} - [Optional] Interval in *milliseconds* in between queue checks, default - `256`. Recommended value — between `opts.minRevolvingDelay` and `opts.maxRevolvingDelay` | ||
- `opts.minRevolvingDelay` {*Number*} - [Optional] Minimum revolving delay — the minimum delay between tasks executions in *milliseconds*, default - `64`. This option is passed directly to [`JoSk` package](https://github.com/VeliovGroup/josk#api) | ||
- `opts.maxRevolvingDelay` {*Number*} - [Optional] Maximum revolving delay — the maximum delay between tasks executions in *milliseconds*, default - `256`. This option is passed directly to [`JoSk` package](https://github.com/VeliovGroup/josk#api) | ||
- `opts.minRevolvingDelay` {*Number*} - [Optional] Minimum revolving delay — the minimum delay between tasks executions in *milliseconds*, default - `64`. This option is passed directly to [`JoSk` package](https://github.com/veliovgroup/josk#api) | ||
- `opts.maxRevolvingDelay` {*Number*} - [Optional] Maximum revolving delay — the maximum delay between tasks executions in *milliseconds*, default - `256`. This option is passed directly to [`JoSk` package](https://github.com/veliovgroup/josk#api) | ||
- `opts.template` {*String*} - [Optional] Mustache-like template, default - `{{{html}}}`, all options passed to `sendMail` is available in Template, like `to`, `subject`, `text`, `html` or any other custom option. Use `{{opt}}` for string placeholders and `{{{opt}}}` for html placeholders | ||
@@ -378,3 +381,3 @@ | ||
Simple and bulletproof HTML template, see its [source](https://github.com/VeliovGroup/Mail-Time/blob/master/template.html). Usage: | ||
Simple and bulletproof HTML template, see its [source](https://github.com/veliovgroup/Mail-Time/blob/master/template.html). Usage: | ||
@@ -447,3 +450,4 @@ ```js | ||
- [Support via PayPal](https://paypal.me/veliovgroup) — support my open source contributions once or on regular basis | ||
- [Sponsor via GitHub](https://github.com/sponsors/dr-dimitru) — support open source contributions on a regular basis | ||
- [Support via PayPal](https://paypal.me/veliovgroup) — support open source contributions once | ||
- Use [ostr.io](https://ostr.io) — [Monitoring](https://snmp-monitoring.com), [Analytics](https://ostr.io/info/web-analytics), [WebSec](https://domain-protection.info), [Web-CRON](https://web-cron.info) and [Pre-rendering](https://prerendering.com) for a website |
Sorry, the diff of this file is not supported yet
45293
447
567
Updatedjosk@^2.4.0