@stamhoofd/email 2.1.4 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,7 @@ export type EmailInterfaceBase = {
22
22
  retryCount?: number;
23
23
  type?: "transactional" | "broadcast";
24
24
  headers?: Record<string, string> | null;
25
+ callback?: (error: Error | null) => void;
25
26
  };
26
27
  export type EmailInterface = EmailInterfaceBase & {
27
28
  from: string;
@@ -49,6 +50,7 @@ declare class EmailStatic {
49
50
  sendInternal(data: EmailInterfaceBase, i18n: I18n): void;
50
51
  send(data: EmailInterface): void;
51
52
  schedule(builder: EmailBuilder): void;
53
+ scheduleAndWait(builder: EmailBuilder): void;
52
54
  }
53
55
  export declare const Email: EmailStatic;
54
56
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../src/classes/Email.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAIzC,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAE9C,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,EAAE,EAAE,MAAM,GAAC,uBAAuB,EAAE,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAC,IAAI,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;CAChB,CAAA;AAGD,MAAM,MAAM,YAAY,GAAG,MAAM,cAAc,GAAG,SAAS,CAAA;AAE3D,cAAM,WAAW;IACb,WAAW,EAAE,IAAI,CAAC;IAClB,wBAAwB,EAAE,IAAI,CAAC;IAC/B,GAAG,SAAK;IAER,YAAY,EAAE,YAAY,EAAE,CAAK;IACjC,OAAO,UAAQ;IAEf,aAAa;IAkDb,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAC,uBAAuB,EAAE,GAAG,uBAAuB,EAAE;IASxE;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;YAkF3B,MAAM;IA2HpB,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAI9B,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAI9B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI;IAKjD,IAAI,CAAC,IAAI,EAAE,cAAc;IAgBzB,QAAQ,CAAC,OAAO,EAAE,YAAY;CAIjC;AAED,eAAO,MAAM,KAAK,aAAoB,CAAC"}
1
+ {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../src/classes/Email.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAIzC,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAG9C,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,EAAE,EAAE,MAAM,GAAC,uBAAuB,EAAE,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAC,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAC,IAAI,KAAK,IAAI,CAAC;CAC1C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;CAChB,CAAA;AAGD,MAAM,MAAM,YAAY,GAAG,MAAM,cAAc,GAAG,SAAS,CAAA;AAE3D,cAAM,WAAW;IACb,WAAW,EAAE,IAAI,CAAC;IAClB,wBAAwB,EAAE,IAAI,CAAC;IAC/B,GAAG,SAAK;IAER,YAAY,EAAE,YAAY,EAAE,CAAK;IACjC,OAAO,UAAQ;IAEf,aAAa;IAkDb,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAC,uBAAuB,EAAE,GAAG,uBAAuB,EAAE;IASxE;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;YAkF3B,MAAM;IA6JpB,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAI9B,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAI9B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI;IAKjD,IAAI,CAAC,IAAI,EAAE,cAAc;IAgBzB,QAAQ,CAAC,OAAO,EAAE,YAAY;IAK9B,eAAe,CAAC,OAAO,EAAE,YAAY;CAIxC;AAED,eAAO,MAAM,KAAK,aAAoB,CAAC"}
@@ -8,6 +8,7 @@ const EmailAddress_1 = require("../models/EmailAddress");
8
8
  const html_to_text_1 = tslib_1.__importDefault(require("html-to-text"));
9
9
  const utility_2 = require("@stamhoofd/utility");
10
10
  const backend_i18n_1 = require("@stamhoofd/backend-i18n");
11
+ const simple_errors_1 = require("@simonbackx/simple-errors");
11
12
  class EmailStatic {
12
13
  constructor() {
13
14
  this.rps = 14;
@@ -169,7 +170,7 @@ class EmailStatic {
169
170
  return addresses;
170
171
  }
171
172
  async doSend(data) {
172
- var _a, _b;
173
+ var _a, _b, _c, _d, _e, _f;
173
174
  if (STAMHOOFD.environment === 'test') {
174
175
  // Do not send any emails
175
176
  return;
@@ -187,6 +188,16 @@ class EmailStatic {
187
188
  if (recipients.length === 0) {
188
189
  // Invalid string
189
190
  console.warn("Filtered all emails due hard bounce or spam '" + data.to + "'. E-mail skipped");
191
+ try {
192
+ (_a = data.callback) === null || _a === void 0 ? void 0 : _a.call(data, new simple_errors_1.SimpleError({
193
+ code: 'all_filtered',
194
+ message: "All recipients are filtered due to hard bounce or spam",
195
+ human: 'Alle ontvangers zijn gefilterd wegens een hard bounce of spam'
196
+ }));
197
+ }
198
+ catch (e) {
199
+ console.error("Error in email callback", e);
200
+ }
190
201
  return;
191
202
  }
192
203
  // Filter by environment
@@ -199,6 +210,16 @@ class EmailStatic {
199
210
  if (recipients.length === 0) {
200
211
  // Invalid string
201
212
  console.warn("Filtered all emails due to environment filter '" + data.to + "'. E-mail skipped");
213
+ try {
214
+ (_b = data.callback) === null || _b === void 0 ? void 0 : _b.call(data, new simple_errors_1.SimpleError({
215
+ code: 'all_filtered',
216
+ message: "All recipients are filtered due to environment",
217
+ human: 'Alle ontvangers zijn gefilterd omwille van de demo-omgeving die het versturen van bepaalde e-mails limiteert'
218
+ }));
219
+ }
220
+ catch (e) {
221
+ console.error("Error in email callback", e);
222
+ }
202
223
  return;
203
224
  }
204
225
  // Rebuild to
@@ -245,30 +266,41 @@ class EmailStatic {
245
266
  const transporter = (data.type === "transactional") ? this.transactionalTransporter : this.transporter;
246
267
  const info = await transporter.sendMail(mail);
247
268
  console.log("Message sent:", to, data.subject, info.messageId, data.type);
269
+ try {
270
+ (_c = data.callback) === null || _c === void 0 ? void 0 : _c.call(data, null);
271
+ }
272
+ catch (e) {
273
+ console.error("Error in email callback", e);
274
+ }
248
275
  }
249
276
  catch (e) {
250
277
  console.error("Failed to send e-mail:");
251
278
  console.error(e);
252
279
  console.error(mail);
253
- if (STAMHOOFD.environment === 'development') {
254
- return;
255
- }
256
280
  // Sleep 1 second to give servers some time to fix possible rate limits
257
281
  await (0, utility_2.sleep)(1000);
258
282
  // Reschedule twice (at maximum) to fix temporary connection issues
259
- data.retryCount = ((_a = data.retryCount) !== null && _a !== void 0 ? _a : 0) + 1;
283
+ data.retryCount = ((_d = data.retryCount) !== null && _d !== void 0 ? _d : 0) + 1;
260
284
  if (data.retryCount <= 2) {
261
285
  this.send(data);
262
286
  }
263
287
  else {
288
+ try {
289
+ (_e = data.callback) === null || _e === void 0 ? void 0 : _e.call(data, e);
290
+ }
291
+ catch (e2) {
292
+ console.error("Error in email failure callback", e2, 'for original error', e);
293
+ }
264
294
  // Email address is not verified.
265
- if (!data.from.includes("hallo@stamhoofd.be")) {
266
- this.sendInternal({
267
- to: "hallo@stamhoofd.be",
268
- subject: "E-mail kon niet worden verzonden",
269
- text: "Een e-mail vanaf " + data.from + " kon niet worden verstuurd aan " + mail.to + ": \n\n" + e + "\n\n" + ((_b = mail.text) !== null && _b !== void 0 ? _b : ""),
270
- type: (data.type === "transactional") ? "broadcast" : "transactional"
271
- }, new backend_i18n_1.I18n("nl", "BE"));
295
+ if (STAMHOOFD.environment !== 'development') {
296
+ if (!data.from.includes("hallo@stamhoofd.be")) {
297
+ this.sendInternal({
298
+ to: "hallo@stamhoofd.be",
299
+ subject: "E-mail kon niet worden verzonden",
300
+ text: "Een e-mail vanaf " + data.from + " kon niet worden verstuurd aan " + mail.to + ": \n\n" + e + "\n\n" + ((_f = mail.text) !== null && _f !== void 0 ? _f : ""),
301
+ type: (data.type === "transactional") ? "broadcast" : "transactional"
302
+ }, new backend_i18n_1.I18n("nl", "BE"));
303
+ }
272
304
  }
273
305
  }
274
306
  }
@@ -304,6 +336,10 @@ class EmailStatic {
304
336
  this.currentQueue.push(builder);
305
337
  this.sendNextIfNeeded();
306
338
  }
339
+ scheduleAndWait(builder) {
340
+ this.currentQueue.push(builder);
341
+ this.sendNextIfNeeded();
342
+ }
307
343
  }
308
344
  exports.Email = new EmailStatic();
309
345
  //# sourceMappingURL=Email.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Email.js","sourceRoot":"","sources":["../../src/classes/Email.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Email.js","sourceRoot":"","sources":["../../src/classes/Email.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ set foreign_key_checks=0;
2
+ ALTER TABLE `email_addresses` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
3
+ ALTER TABLE `email_addresses` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
4
+ ALTER DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
5
+ set foreign_key_checks=1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/email",
3
- "version": "2.1.4",
3
+ "version": "2.4.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -23,5 +23,5 @@
23
23
  "html-to-text": "^8.1.0",
24
24
  "nodemailer": "6.9.13"
25
25
  },
26
- "gitHead": "22be7c0740ce4705470d6fc79b5a50ccccabad9d"
26
+ "gitHead": "5313c328ca0e90544bf198bc6bebc90d7dced2aa"
27
27
  }
@@ -5,6 +5,7 @@ import { EmailAddress } from '../models/EmailAddress';
5
5
  import htmlToText from 'html-to-text';
6
6
  import { sleep } from '@stamhoofd/utility';
7
7
  import { I18n } from "@stamhoofd/backend-i18n"
8
+ import { SimpleError } from '@simonbackx/simple-errors';
8
9
 
9
10
  export type EmailInterfaceRecipient = {
10
11
  name?: string|null;
@@ -21,7 +22,8 @@ export type EmailInterfaceBase = {
21
22
  attachments?: { filename: string; path?: string; href?: string; content?: string|Buffer; contentType?: string }[];
22
23
  retryCount?: number;
23
24
  type?: "transactional" | "broadcast",
24
- headers?: Record<string, string>|null
25
+ headers?: Record<string, string>|null,
26
+ callback?: (error: Error|null) => void;
25
27
  }
26
28
 
27
29
  export type EmailInterface = EmailInterfaceBase & {
@@ -231,6 +233,18 @@ class EmailStatic {
231
233
  if (recipients.length === 0) {
232
234
  // Invalid string
233
235
  console.warn("Filtered all emails due hard bounce or spam '"+data.to+"'. E-mail skipped")
236
+
237
+ try {
238
+ data.callback?.(
239
+ new SimpleError({
240
+ code: 'all_filtered',
241
+ message: "All recipients are filtered due to hard bounce or spam",
242
+ human: 'Alle ontvangers zijn gefilterd wegens een hard bounce of spam'
243
+ })
244
+ )
245
+ } catch (e) {
246
+ console.error("Error in email callback", e)
247
+ }
234
248
  return
235
249
  }
236
250
 
@@ -245,6 +259,18 @@ class EmailStatic {
245
259
  if (recipients.length === 0) {
246
260
  // Invalid string
247
261
  console.warn("Filtered all emails due to environment filter '"+data.to+"'. E-mail skipped")
262
+
263
+ try {
264
+ data.callback?.(
265
+ new SimpleError({
266
+ code: 'all_filtered',
267
+ message: "All recipients are filtered due to environment",
268
+ human: 'Alle ontvangers zijn gefilterd omwille van de demo-omgeving die het versturen van bepaalde e-mails limiteert'
269
+ })
270
+ )
271
+ } catch (e) {
272
+ console.error("Error in email callback", e)
273
+ }
248
274
  return
249
275
  }
250
276
 
@@ -302,15 +328,17 @@ class EmailStatic {
302
328
 
303
329
  const info = await transporter.sendMail(mail);
304
330
  console.log("Message sent:", to, data.subject, info.messageId, data.type);
331
+
332
+ try {
333
+ data.callback?.(null)
334
+ } catch (e) {
335
+ console.error("Error in email callback", e)
336
+ }
305
337
  } catch (e) {
306
338
  console.error("Failed to send e-mail:")
307
339
  console.error(e);
308
340
  console.error(mail);
309
341
 
310
- if (STAMHOOFD.environment === 'development') {
311
- return;
312
- }
313
-
314
342
  // Sleep 1 second to give servers some time to fix possible rate limits
315
343
  await sleep(1000);
316
344
 
@@ -320,14 +348,22 @@ class EmailStatic {
320
348
  if (data.retryCount <= 2) {
321
349
  this.send(data);
322
350
  } else {
351
+ try {
352
+ data.callback?.(e)
353
+ } catch (e2) {
354
+ console.error("Error in email failure callback", e2, 'for original error', e)
355
+ }
356
+
323
357
  // Email address is not verified.
324
- if (!data.from.includes("hallo@stamhoofd.be")) {
325
- this.sendInternal({
326
- to: "hallo@stamhoofd.be",
327
- subject: "E-mail kon niet worden verzonden",
328
- text: "Een e-mail vanaf "+data.from+" kon niet worden verstuurd aan "+mail.to+": \n\n"+e+"\n\n"+(mail.text ?? ""),
329
- type: (data.type === "transactional") ? "broadcast" : "transactional"
330
- }, new I18n("nl", "BE"))
358
+ if (STAMHOOFD.environment !== 'development') {
359
+ if (!data.from.includes("hallo@stamhoofd.be")) {
360
+ this.sendInternal({
361
+ to: "hallo@stamhoofd.be",
362
+ subject: "E-mail kon niet worden verzonden",
363
+ text: "Een e-mail vanaf "+data.from+" kon niet worden verstuurd aan "+mail.to+": \n\n"+e+"\n\n"+(mail.text ?? ""),
364
+ type: (data.type === "transactional") ? "broadcast" : "transactional"
365
+ }, new I18n("nl", "BE"))
366
+ }
331
367
  }
332
368
  }
333
369
  }
@@ -369,6 +405,11 @@ class EmailStatic {
369
405
  this.currentQueue.push(builder)
370
406
  this.sendNextIfNeeded()
371
407
  }
408
+
409
+ scheduleAndWait(builder: EmailBuilder) {
410
+ this.currentQueue.push(builder)
411
+ this.sendNextIfNeeded()
412
+ }
372
413
  }
373
414
 
374
415
  export const Email = new EmailStatic();
@@ -0,0 +1,5 @@
1
+ set foreign_key_checks=0;
2
+ ALTER TABLE `email_addresses` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
3
+ ALTER TABLE `email_addresses` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
4
+ ALTER DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
5
+ set foreign_key_checks=1;