@stamhoofd/email 2.24.0 → 2.25.2

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.
@@ -40,13 +40,25 @@ declare class EmailStatic {
40
40
  * Get the raw email
41
41
  */
42
42
  parseEmailStr(emailStr: string): string[];
43
+ private matchWhitelist;
44
+ private filterWhitelist;
43
45
  private doSend;
46
+ /**
47
+ * @deprecated
48
+ * Please use EmailBuilder.sendEmailTemplate
49
+ */
44
50
  getInternalEmailFor(i18n: I18n): string;
51
+ getWebmasterFromEmail(): string;
52
+ getWebmasterToEmail(): string;
53
+ /**
54
+ * @deprecated
55
+ * Please use EmailBuilder.sendEmailTemplate
56
+ */
45
57
  getPersonalEmailFor(i18n: I18n): string;
46
58
  /**
47
- * Send an internal e-mail (from stamhoofd)
59
+ * Send an email to the webmaster
48
60
  */
49
- sendInternal(data: EmailInterfaceBase, i18n: I18n): void;
61
+ sendWebmaster(data: Omit<EmailInterfaceBase, "to">): void;
50
62
  send(data: EmailInterface): void;
51
63
  schedule(builder: EmailBuilder): void;
52
64
  scheduleAndWait(builder: EmailBuilder): void;
@@ -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;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;IA4KpB,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAK9B,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"}
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;IAkFzC,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,eAAe;YAUT,MAAM;IA2KpB;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAK9B,qBAAqB;IAIrB,mBAAmB;IAInB;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAI9B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAQlD,IAAI,CAAC,IAAI,EAAE,cAAc;IAgBzB,QAAQ,CAAC,OAAO,EAAE,YAAY;IAK9B,eAAe,CAAC,OAAO,EAAE,YAAY;CAIxC;AAED,eAAO,MAAM,KAAK,aAAoB,CAAC"}
@@ -169,6 +169,30 @@ class EmailStatic {
169
169
  endAddress();
170
170
  return addresses;
171
171
  }
172
+ matchWhitelist(email, whitelist) {
173
+ if (!whitelist.includes('*') && !whitelist.includes('*@*')) {
174
+ const l = email.toLowerCase();
175
+ if (whitelist.includes(l)) {
176
+ return true;
177
+ }
178
+ const domainIndex = l.indexOf('@');
179
+ const domain = l.substring(domainIndex);
180
+ if (whitelist.includes('*' + domain)) {
181
+ return true;
182
+ }
183
+ console.warn("Filtered email to " + l + ": not whitelisted");
184
+ return false;
185
+ }
186
+ return true;
187
+ }
188
+ filterWhitelist(recipients, whitelist) {
189
+ if (!whitelist.includes('*') && !whitelist.includes('*@*')) {
190
+ return recipients.filter(mail => {
191
+ return this.matchWhitelist(mail.email, whitelist);
192
+ });
193
+ }
194
+ return recipients;
195
+ }
172
196
  async doSend(data) {
173
197
  if (STAMHOOFD.environment === 'test') {
174
198
  // Do not send any emails
@@ -202,21 +226,7 @@ class EmailStatic {
202
226
  // Filter by environment
203
227
  if (STAMHOOFD.environment !== 'production') {
204
228
  const whitelist = STAMHOOFD.WHITELISTED_EMAIL_DESTINATIONS ?? [];
205
- if (!whitelist.includes('*') && !whitelist.includes('*@*')) {
206
- recipients = recipients.filter(mail => {
207
- const l = mail.email.toLowerCase();
208
- if (whitelist.includes(l)) {
209
- return true;
210
- }
211
- const domainIndex = l.indexOf('@');
212
- const domain = l.substring(domainIndex);
213
- if (whitelist.includes('*' + domain)) {
214
- return true;
215
- }
216
- console.warn("Filtered email to " + l + ": not whitelisted in WHITELISTED_EMAIL_DESTINATIONS");
217
- return false;
218
- });
219
- }
229
+ recipients = this.filterWhitelist(recipients, whitelist);
220
230
  }
221
231
  if (recipients.length === 0) {
222
232
  // Invalid string
@@ -268,13 +278,31 @@ class EmailStatic {
268
278
  });
269
279
  }
270
280
  }
281
+ const parsedFrom = this.parseEmailStr(data.from);
282
+ if (parsedFrom.length !== 1) {
283
+ throw new Error("Invalid from email " + data.from);
284
+ }
271
285
  try {
272
- // todo: read from environment
273
- if (!data.from.includes('@stamhoofd.be') && !data.from.includes('@stamhoofd.nl')) {
274
- // Not supported
275
- data.type = 'broadcast';
286
+ // Can we send from the transactional email server?
287
+ if (STAMHOOFD.TRANSACTIONAL_WHITELIST !== undefined && data.type === 'transactional') {
288
+ if (!this.matchWhitelist(parsedFrom[0], STAMHOOFD.TRANSACTIONAL_WHITELIST)) {
289
+ // Not supported
290
+ data.type = 'broadcast';
291
+ }
276
292
  }
277
293
  const transporter = (data.type === "transactional") ? this.transactionalTransporter : this.transporter;
294
+ if (data.type === "transactional") {
295
+ data.headers = {
296
+ ...data.headers,
297
+ ...STAMHOOFD.TRANSACTIONAL_SMTP_HEADERS
298
+ };
299
+ }
300
+ else {
301
+ data.headers = {
302
+ ...data.headers,
303
+ ...STAMHOOFD.SMTP_HEADERS
304
+ };
305
+ }
278
306
  const info = await transporter.sendMail(mail);
279
307
  console.log("Message sent:", to, data.subject, info.messageId, data.type);
280
308
  try {
@@ -304,30 +332,46 @@ class EmailStatic {
304
332
  }
305
333
  // Email address is not verified.
306
334
  if (STAMHOOFD.environment !== 'development') {
307
- if (!data.from.includes("hallo@stamhoofd.be")) {
308
- this.sendInternal({
309
- to: "hallo@stamhoofd.be",
335
+ if (data.from !== this.getWebmasterFromEmail()) {
336
+ this.sendWebmaster({
310
337
  subject: "E-mail kon niet worden verzonden",
311
338
  text: "Een e-mail vanaf " + data.from + " kon niet worden verstuurd aan " + mail.to + ": \n\n" + e + "\n\n" + (mail.text ?? ""),
312
339
  type: (data.type === "transactional") ? "broadcast" : "transactional"
313
- }, new backend_i18n_1.I18n("nl", "BE"));
340
+ });
314
341
  }
315
342
  }
316
343
  }
317
344
  }
318
345
  }
346
+ /**
347
+ * @deprecated
348
+ * Please use EmailBuilder.sendEmailTemplate
349
+ */
319
350
  getInternalEmailFor(i18n) {
320
351
  // todo: use default email in platform settings
321
- return '"' + (STAMHOOFD.platformName ?? 'Stamhoofd') + ' " <' + (i18n.$t("shared.emails.general")) + '>';
352
+ return '"' + (STAMHOOFD.platformName ?? 'Stamhoofd') + ' " <hallo@' + (i18n.localizedDomains.defaultTransactionalEmail()) + '>';
322
353
  }
354
+ getWebmasterFromEmail() {
355
+ return '"' + (STAMHOOFD.platformName ?? 'Stamhoofd') + ' " <webmaster@' + (new backend_i18n_1.I18n("nl", "BE").localizedDomains.defaultTransactionalEmail()) + '>';
356
+ }
357
+ getWebmasterToEmail() {
358
+ return 'hallo@stamhoofd.be';
359
+ }
360
+ /**
361
+ * @deprecated
362
+ * Please use EmailBuilder.sendEmailTemplate
363
+ */
323
364
  getPersonalEmailFor(i18n) {
324
365
  return '"Simon Backx" <' + (i18n.$t("shared.emails.personal")) + '>';
325
366
  }
326
367
  /**
327
- * Send an internal e-mail (from stamhoofd)
368
+ * Send an email to the webmaster
328
369
  */
329
- sendInternal(data, i18n) {
330
- const mail = Object.assign(data, { from: this.getInternalEmailFor(i18n) });
370
+ sendWebmaster(data) {
371
+ const mail = Object.assign(data, {
372
+ from: this.getWebmasterFromEmail(),
373
+ to: this.getWebmasterToEmail()
374
+ });
331
375
  this.send(mail);
332
376
  }
333
377
  send(data) {
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/email",
3
- "version": "2.24.0",
3
+ "version": "2.25.2",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -25,5 +25,5 @@
25
25
  "publishConfig": {
26
26
  "access": "public"
27
27
  },
28
- "gitHead": "bad7d2adfa412af0b0de101274e46ed0b539ae38"
28
+ "gitHead": "2eda2d1bc9aa4ea061b002d265a5615a87eeef8b"
29
29
  }
@@ -212,6 +212,37 @@ class EmailStatic {
212
212
  return addresses
213
213
  }
214
214
 
215
+ private matchWhitelist(email: string, whitelist: string[]) {
216
+ if (!whitelist.includes('*') && !whitelist.includes('*@*')) {
217
+ const l = email.toLowerCase();
218
+ if (whitelist.includes(l)) {
219
+ return true;
220
+ }
221
+
222
+ const domainIndex = l.indexOf('@');
223
+ const domain = l.substring(domainIndex)
224
+
225
+ if (whitelist.includes('*' + domain)) {
226
+ return true;
227
+ }
228
+
229
+ console.warn("Filtered email to " + l + ": not whitelisted")
230
+ return false;
231
+ }
232
+
233
+ return true
234
+ }
235
+
236
+ private filterWhitelist(recipients: EmailInterfaceRecipient[], whitelist: string[]) {
237
+ if (!whitelist.includes('*') && !whitelist.includes('*@*')) {
238
+ return recipients.filter(mail => {
239
+ return this.matchWhitelist(mail.email, whitelist)
240
+ })
241
+ }
242
+
243
+ return recipients
244
+ }
245
+
215
246
  private async doSend(data: EmailInterface) {
216
247
  if (STAMHOOFD.environment === 'test') {
217
248
  // Do not send any emails
@@ -251,25 +282,7 @@ class EmailStatic {
251
282
  // Filter by environment
252
283
  if (STAMHOOFD.environment !== 'production') {
253
284
  const whitelist = STAMHOOFD.WHITELISTED_EMAIL_DESTINATIONS ?? []
254
-
255
- if (!whitelist.includes('*') && !whitelist.includes('*@*')) {
256
- recipients = recipients.filter(mail => {
257
- const l = mail.email.toLowerCase();
258
- if (whitelist.includes(l)) {
259
- return true;
260
- }
261
-
262
- const domainIndex = l.indexOf('@');
263
- const domain = l.substring(domainIndex)
264
-
265
- if (whitelist.includes('*' + domain)) {
266
- return true;
267
- }
268
-
269
- console.warn("Filtered email to " + l + ": not whitelisted in WHITELISTED_EMAIL_DESTINATIONS")
270
- return false;
271
- })
272
- }
285
+ recipients = this.filterWhitelist(recipients, whitelist)
273
286
  }
274
287
 
275
288
  if (recipients.length === 0) {
@@ -331,16 +344,34 @@ class EmailStatic {
331
344
  }
332
345
  }
333
346
 
347
+ const parsedFrom = this.parseEmailStr(data.from)
348
+ if (parsedFrom.length !== 1) {
349
+ throw new Error("Invalid from email " + data.from)
350
+ }
351
+
334
352
  try {
335
- // todo: read from environment
336
- if (!data.from.includes('@stamhoofd.be') && !data.from.includes('@stamhoofd.nl')) {
337
- // Not supported
338
- data.type = 'broadcast'
353
+ // Can we send from the transactional email server?
354
+ if (STAMHOOFD.TRANSACTIONAL_WHITELIST !== undefined && data.type === 'transactional') {
355
+ if (!this.matchWhitelist(parsedFrom[0], STAMHOOFD.TRANSACTIONAL_WHITELIST)) {
356
+ // Not supported
357
+ data.type = 'broadcast'
358
+ }
339
359
  }
340
360
 
341
361
  const transporter = (data.type === "transactional") ? this.transactionalTransporter : this.transporter
342
362
 
343
-
363
+ if (data.type === "transactional") {
364
+ data.headers = {
365
+ ...data.headers,
366
+ ...STAMHOOFD.TRANSACTIONAL_SMTP_HEADERS
367
+ }
368
+ } else {
369
+ data.headers = {
370
+ ...data.headers,
371
+ ...STAMHOOFD.SMTP_HEADERS
372
+ }
373
+ }
374
+
344
375
  const info = await transporter.sendMail(mail);
345
376
  console.log("Message sent:", to, data.subject, info.messageId, data.type);
346
377
 
@@ -371,33 +402,51 @@ class EmailStatic {
371
402
 
372
403
  // Email address is not verified.
373
404
  if (STAMHOOFD.environment !== 'development') {
374
- if (!data.from.includes("hallo@stamhoofd.be")) {
375
- this.sendInternal({
376
- to: "hallo@stamhoofd.be",
405
+ if (data.from !== this.getWebmasterFromEmail()) {
406
+ this.sendWebmaster({
377
407
  subject: "E-mail kon niet worden verzonden",
378
408
  text: "Een e-mail vanaf "+data.from+" kon niet worden verstuurd aan "+mail.to+": \n\n"+e+"\n\n"+(mail.text ?? ""),
379
409
  type: (data.type === "transactional") ? "broadcast" : "transactional"
380
- }, new I18n("nl", "BE"))
410
+ })
381
411
  }
382
412
  }
383
413
  }
384
414
  }
385
415
  }
386
416
 
417
+ /**
418
+ * @deprecated
419
+ * Please use EmailBuilder.sendEmailTemplate
420
+ */
387
421
  getInternalEmailFor(i18n: I18n) {
388
422
  // todo: use default email in platform settings
389
- return '"' + (STAMHOOFD.platformName ?? 'Stamhoofd') + ' " <'+ (i18n.$t("shared.emails.general")) +'>'
423
+ return '"' + (STAMHOOFD.platformName ?? 'Stamhoofd') + ' " <hallo@'+ (i18n.localizedDomains.defaultTransactionalEmail()) +'>'
390
424
  }
391
425
 
426
+ getWebmasterFromEmail() {
427
+ return '"' + (STAMHOOFD.platformName ?? 'Stamhoofd') + ' " <webmaster@'+ (new I18n("nl", "BE").localizedDomains.defaultTransactionalEmail()) +'>'
428
+ }
429
+
430
+ getWebmasterToEmail() {
431
+ return 'hallo@stamhoofd.be'
432
+ }
433
+
434
+ /**
435
+ * @deprecated
436
+ * Please use EmailBuilder.sendEmailTemplate
437
+ */
392
438
  getPersonalEmailFor(i18n: I18n) {
393
439
  return '"Simon Backx" <'+ (i18n.$t("shared.emails.personal")) +'>'
394
440
  }
395
441
 
396
442
  /**
397
- * Send an internal e-mail (from stamhoofd)
443
+ * Send an email to the webmaster
398
444
  */
399
- sendInternal(data: EmailInterfaceBase, i18n: I18n) {
400
- const mail = Object.assign(data, { from: this.getInternalEmailFor(i18n) })
445
+ sendWebmaster(data: Omit<EmailInterfaceBase, "to">) {
446
+ const mail = Object.assign(data, {
447
+ from: this.getWebmasterFromEmail(),
448
+ to: this.getWebmasterToEmail()
449
+ })
401
450
  this.send(mail)
402
451
  }
403
452