@servicelabsco/nestjs-utility-services 1.2.91 → 1.2.93

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.
Files changed (61) hide show
  1. package/dist/migrations/1710834052315-AddTrackingIdentifierSysMailLogsTable.d.ts +5 -0
  2. package/dist/migrations/1710834052315-AddTrackingIdentifierSysMailLogsTable.js +17 -0
  3. package/dist/migrations/1710834052315-AddTrackingIdentifierSysMailLogsTable.js.map +1 -0
  4. package/dist/migrations/1717761722433-AddTrackColumnsSysMailRecipientsTable.d.ts +5 -0
  5. package/dist/migrations/1717761722433-AddTrackColumnsSysMailRecipientsTable.js +17 -0
  6. package/dist/migrations/1717761722433-AddTrackColumnsSysMailRecipientsTable.js.map +1 -0
  7. package/dist/platformUtility/dtos/mail.options.dto.d.ts +2 -0
  8. package/dist/platformUtility/dtos/mail.options.dto.js +10 -0
  9. package/dist/platformUtility/dtos/mail.options.dto.js.map +1 -1
  10. package/dist/platformUtility/es6.classes.d.ts +7 -3
  11. package/dist/platformUtility/es6.classes.js +9 -1
  12. package/dist/platformUtility/es6.classes.js.map +1 -1
  13. package/dist/platformUtility/jobs/index.d.ts +2 -0
  14. package/dist/platformUtility/jobs/index.js +2 -0
  15. package/dist/platformUtility/jobs/index.js.map +1 -1
  16. package/dist/platformUtility/jobs/process.ses.delivery.webhook.job.d.ts +9 -0
  17. package/dist/platformUtility/jobs/process.ses.delivery.webhook.job.js +44 -0
  18. package/dist/platformUtility/jobs/process.ses.delivery.webhook.job.js.map +1 -0
  19. package/dist/platformUtility/jobs/process.tracking.webhook.job.d.ts +8 -0
  20. package/dist/platformUtility/jobs/process.tracking.webhook.job.js +41 -0
  21. package/dist/platformUtility/jobs/process.tracking.webhook.job.js.map +1 -0
  22. package/dist/platformUtility/libraries/index.d.ts +2 -0
  23. package/dist/platformUtility/libraries/index.js +2 -0
  24. package/dist/platformUtility/libraries/index.js.map +1 -1
  25. package/dist/platformUtility/libraries/process.common.mail.d.ts +1 -0
  26. package/dist/platformUtility/libraries/process.common.mail.js +9 -0
  27. package/dist/platformUtility/libraries/process.common.mail.js.map +1 -1
  28. package/dist/platformUtility/libraries/process.common.ses.mail.d.ts +15 -0
  29. package/dist/platformUtility/libraries/process.common.ses.mail.js +40 -0
  30. package/dist/platformUtility/libraries/process.common.ses.mail.js.map +1 -0
  31. package/dist/platformUtility/libraries/process.common.smtp.mail.d.ts +6 -3
  32. package/dist/platformUtility/libraries/process.common.smtp.mail.js +0 -38
  33. package/dist/platformUtility/libraries/process.common.smtp.mail.js.map +1 -1
  34. package/dist/platformUtility/libraries/process.ses.mail.d.ts +13 -4
  35. package/dist/platformUtility/libraries/process.ses.mail.js +79 -6
  36. package/dist/platformUtility/libraries/process.ses.mail.js.map +1 -1
  37. package/dist/platformUtility/libraries/process.ses.raw.mail.d.ts +33 -0
  38. package/dist/platformUtility/libraries/process.ses.raw.mail.js +129 -0
  39. package/dist/platformUtility/libraries/process.ses.raw.mail.js.map +1 -0
  40. package/dist/platformUtility/libraries/process.smtp.mail.d.ts +11 -1
  41. package/dist/platformUtility/libraries/process.smtp.mail.js +97 -5
  42. package/dist/platformUtility/libraries/process.smtp.mail.js.map +1 -1
  43. package/dist/platformUtility/services/es6.jobs.service.d.ts +5 -1
  44. package/dist/platformUtility/services/es6.jobs.service.js +9 -1
  45. package/dist/platformUtility/services/es6.jobs.service.js.map +1 -1
  46. package/dist/platformUtility/services/index.d.ts +1 -0
  47. package/dist/platformUtility/services/index.js +1 -0
  48. package/dist/platformUtility/services/index.js.map +1 -1
  49. package/dist/platformUtility/services/mail.service.d.ts +4 -1
  50. package/dist/platformUtility/services/mail.service.js +30 -14
  51. package/dist/platformUtility/services/mail.service.js.map +1 -1
  52. package/dist/platformUtility/services/ses.mail.notification.service.d.ts +10 -0
  53. package/dist/platformUtility/services/ses.mail.notification.service.js +53 -0
  54. package/dist/platformUtility/services/ses.mail.notification.service.js.map +1 -0
  55. package/dist/system/entities/mail.log.entity.d.ts +3 -0
  56. package/dist/system/entities/mail.log.entity.js +12 -0
  57. package/dist/system/entities/mail.log.entity.js.map +1 -1
  58. package/dist/system/entities/mail.recipient.entity.d.ts +3 -0
  59. package/dist/system/entities/mail.recipient.entity.js +12 -0
  60. package/dist/system/entities/mail.recipient.entity.js.map +1 -1
  61. package/package.json +4 -2
@@ -1,17 +1,90 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProcessSesMail = void 0;
4
- const process_common_smtp_mail_1 = require("./process.common.smtp.mail");
5
- class ProcessSesMail extends process_common_smtp_mail_1.ProcessCommonSmtpMail {
6
- constructor(propertyService, options) {
4
+ const client_ses_1 = require("@aws-sdk/client-ses");
5
+ const platform_utility_1 = require("../../common/libraries/platform.utility");
6
+ const process_common_ses_mail_1 = require("./process.common.ses.mail");
7
+ class ProcessSesMail extends process_common_ses_mail_1.ProcessCommonSesMail {
8
+ constructor(propertyService, options, awsConfigService, mailService) {
7
9
  super();
8
10
  this.propertyService = propertyService;
9
11
  this.options = options;
12
+ this.awsConfigService = awsConfigService;
13
+ this.mailService = mailService;
10
14
  }
11
15
  async process() {
12
- const response = await this.send();
13
- const identifier = response.response.split(' ')[2];
14
- return { identifier, attributes: { ses: response } };
16
+ const response = await this.sendSesEmail();
17
+ const identifier = this.stripUnwantedChars(response.MessageId);
18
+ return {
19
+ identifier,
20
+ trackingId: response?.trackingId,
21
+ attributes: { ses: response },
22
+ track_pairs: response?.track_pairs,
23
+ };
24
+ }
25
+ async sendSesEmail() {
26
+ const sesClient = await this.getClient();
27
+ const configurationSet = await this.propertyService.get('ses.mail.config.set', 'track3');
28
+ const ToAddresses = Array.isArray(this.options.to) ? this.options.to : [this.options.to];
29
+ const ccAddresses = Array.isArray(this.options.to) ? this.options.to : [this.options.to];
30
+ const bccAddresses = Array.isArray(this.options.bcc) ? this.options.bcc : this.options.bcc ? [this.options.bcc] : [];
31
+ const { trackingId, trackingPixelId } = await this.setTracking();
32
+ if (this.options.tracking_enabled)
33
+ await this.setTrackingPixel(trackingId, trackingPixelId);
34
+ const attachments = await this.setAttachments();
35
+ attachments.forEach((attachment) => {
36
+ this.options.html += `<p>Attachment: ${attachment.filename}</p>`;
37
+ this.options.html += `<p>${attachment.content}</p>`;
38
+ });
39
+ const input = {
40
+ ConfigurationSetName: configurationSet,
41
+ Destination: {
42
+ ToAddresses: ToAddresses,
43
+ CcAddresses: ccAddresses,
44
+ BccAddresses: bccAddresses,
45
+ },
46
+ Message: {
47
+ Body: {
48
+ Html: {
49
+ Charset: 'UTF-8',
50
+ Data: this.options.html,
51
+ },
52
+ },
53
+ Subject: {
54
+ Charset: 'UTF-8',
55
+ Data: this.options.subject,
56
+ },
57
+ },
58
+ Source: this.options.from,
59
+ };
60
+ const command = new client_ses_1.SendEmailCommand(input);
61
+ try {
62
+ const response = await sesClient.send(command);
63
+ if (!this.options.tracking_enabled)
64
+ return response;
65
+ response['trackingId'] = trackingId;
66
+ const track_pairs = {};
67
+ track_pairs[trackingPixelId] = { email: null };
68
+ response['track_pairs'] = track_pairs;
69
+ return response;
70
+ }
71
+ catch (err) {
72
+ console.log(err);
73
+ return err;
74
+ }
75
+ }
76
+ async setTracking() {
77
+ const now = new Date().getTime();
78
+ const random = platform_utility_1.PlatformUtility.generateRandomAlphaNumeric(32);
79
+ const trackingId = `${now}.${random}`;
80
+ const trackingPixelId = platform_utility_1.PlatformUtility.generateRandomAlphaNumeric(32);
81
+ return { trackingId, trackingPixelId };
82
+ }
83
+ async setTrackingPixel(trackingId, trackingPixelId) {
84
+ const trackingPixel = await this.mailService.getTrackingPixel(trackingId, trackingPixelId);
85
+ if (!trackingPixel)
86
+ return;
87
+ this.options.html = `${this.options.html}${trackingPixel}`;
15
88
  }
16
89
  }
17
90
  exports.ProcessSesMail = ProcessSesMail;
@@ -1 +1 @@
1
- {"version":3,"file":"process.ses.mail.js","sourceRoot":"","sources":["../../../src/platformUtility/libraries/process.ses.mail.ts"],"names":[],"mappings":";;;AAEA,yEAAmE;AAQnE,MAAa,cAAe,SAAQ,gDAAqB;IAOrD,YACuB,eAAgC,EACzC,OAAuB;QAEjC,KAAK,EAAE,CAAC;QAHW,oBAAe,GAAf,eAAe,CAAiB;QACzC,YAAO,GAAP,OAAO,CAAgB;IAGrC,CAAC;IAOD,KAAK,CAAC,OAAO;QACT,MAAM,QAAQ,GAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;IACzD,CAAC;CACJ;AAzBD,wCAyBC"}
1
+ {"version":3,"file":"process.ses.mail.js","sourceRoot":"","sources":["../../../src/platformUtility/libraries/process.ses.mail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { PropertyService } from '../../system/services/property.service';
2
+ import { MailOptionsDto } from './../dtos/mail.options.dto';
3
+ import { AwsConfigService } from '../services/aws.config.service';
4
+ import { MailService } from '../services/mail.service';
5
+ import { ProcessCommonSesMail } from './process.common.ses.mail';
6
+ export declare class ProcessSesRawMail extends ProcessCommonSesMail {
7
+ protected readonly propertyService: PropertyService;
8
+ protected options: MailOptionsDto;
9
+ protected readonly awsConfigService: AwsConfigService;
10
+ protected readonly mailService: MailService;
11
+ constructor(propertyService: PropertyService, options: MailOptionsDto, awsConfigService: AwsConfigService, mailService: MailService);
12
+ process(): Promise<{
13
+ identifier: string;
14
+ trackingId: any;
15
+ attributes: {
16
+ ses: any;
17
+ };
18
+ track_pairs: any;
19
+ }>;
20
+ sendSesRawEmail(): Promise<{
21
+ track_pairs: {};
22
+ identifier: string;
23
+ attributes: any[];
24
+ trackingId: string;
25
+ }>;
26
+ private setTracking;
27
+ private sendMail;
28
+ private getAllEmails;
29
+ private getEmails;
30
+ createRawMessage(references: string, trackingId: string, trackingpixelId: string): Promise<string>;
31
+ private stripOffUnwantedChars;
32
+ private setTrackingPixel;
33
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessSesRawMail = void 0;
4
+ const platform_utility_1 = require("../../common/libraries/platform.utility");
5
+ const client_ses_1 = require("@aws-sdk/client-ses");
6
+ const process_common_ses_mail_1 = require("./process.common.ses.mail");
7
+ class ProcessSesRawMail extends process_common_ses_mail_1.ProcessCommonSesMail {
8
+ constructor(propertyService, options, awsConfigService, mailService) {
9
+ super();
10
+ this.propertyService = propertyService;
11
+ this.options = options;
12
+ this.awsConfigService = awsConfigService;
13
+ this.mailService = mailService;
14
+ }
15
+ async process() {
16
+ const response = await this.sendSesRawEmail();
17
+ const identifier = this.stripOffUnwantedChars(response?.identifier);
18
+ return {
19
+ identifier,
20
+ trackingId: response?.trackingId,
21
+ attributes: { ses: response?.attributes },
22
+ track_pairs: response?.track_pairs,
23
+ };
24
+ }
25
+ async sendSesRawEmail() {
26
+ const destinations = await this.getAllEmails();
27
+ const { trackingId, reference } = await this.setTracking();
28
+ let trackPairs = {};
29
+ let sesResponse = [];
30
+ const configurationSet = await this.propertyService.get('ses.mail.config.set', 'track3');
31
+ for (const email of destinations) {
32
+ const trackingPixelId = platform_utility_1.PlatformUtility.generateRandomAlphaNumeric(32);
33
+ trackPairs[email] = trackingPixelId;
34
+ const rawMessage = await this.createRawMessage(reference, trackingId, trackingPixelId);
35
+ const response = await this.sendMail(email, configurationSet, rawMessage);
36
+ if (response)
37
+ sesResponse.push(response);
38
+ }
39
+ return { track_pairs: trackPairs, identifier: reference, attributes: sesResponse, trackingId };
40
+ }
41
+ async setTracking() {
42
+ const now = new Date().getTime();
43
+ const random = platform_utility_1.PlatformUtility.generateRandomAlphaNumeric(32);
44
+ const trackingId = `${now}.${random}`;
45
+ const referenceBaseDomain = await this.propertyService.get('ses.mail.reference.base.domain', 'finnoto.dev');
46
+ let reference = `<${trackingId}@${referenceBaseDomain}>`;
47
+ return { trackingId, reference };
48
+ }
49
+ async sendMail(email, configurationSet, rawMessage) {
50
+ const sesClient = await this.getClient();
51
+ const msg = {
52
+ Destinations: [email],
53
+ ConfigurationSetName: configurationSet,
54
+ RawMessage: {
55
+ Data: Buffer.from(rawMessage),
56
+ },
57
+ };
58
+ try {
59
+ const command = new client_ses_1.SendRawEmailCommand(msg);
60
+ return sesClient.send(command);
61
+ }
62
+ catch (error) {
63
+ throw error;
64
+ }
65
+ }
66
+ async getAllEmails() {
67
+ let emails = [];
68
+ if (this.options.to)
69
+ emails = this.getEmails(emails, this.options.to);
70
+ if (this.options.cc)
71
+ emails = this.getEmails(emails, this.options.cc);
72
+ if (this.options.bcc)
73
+ emails = this.getEmails(emails, this.options.bcc);
74
+ return emails;
75
+ }
76
+ getEmails(emails, data) {
77
+ if (Array.isArray(data)) {
78
+ emails.push(...data);
79
+ }
80
+ else {
81
+ emails.push(data);
82
+ }
83
+ return emails;
84
+ }
85
+ async createRawMessage(references, trackingId, trackingpixelId) {
86
+ const toAddresses = Array.isArray(this.options.to) ? this.options.to : [this.options.to];
87
+ const ccAddresses = Array.isArray(this.options.to) ? this.options.to : [this.options.to];
88
+ const bccAddresses = Array.isArray(this.options.bcc) ? this.options.bcc : this.options.bcc ? [this.options.bcc] : [];
89
+ let html = this.options.html;
90
+ if (this.options.tracking_enabled)
91
+ html = await this.setTrackingPixel(trackingId, trackingpixelId);
92
+ let msg = `From: ${this.options.from}\n`;
93
+ msg += `To: ${toAddresses}\n`;
94
+ msg += `CC: ${ccAddresses}\n`;
95
+ msg += `BCC: ${bccAddresses}\n`;
96
+ msg += `Subject: ${this.options.subject}\n`;
97
+ msg += `References: ${references}\n`;
98
+ msg += `MIME-Version: 1.0\n`;
99
+ msg += `Content-Type: multipart/mixed; boundary="NextPart"\n\n`;
100
+ msg += `--NextPart\n`;
101
+ msg += `Content-Type: multipart/alternative; boundary="AltPart"\n\n`;
102
+ msg += `--AltPart\n`;
103
+ msg += `Content-Type: text/html; charset="UTF-8"\n`;
104
+ msg += `Content-Transfer-Encoding: 7bit\n\n`;
105
+ msg += `${html}\n\n`;
106
+ msg += `--AltPart--\n\n`;
107
+ const attachments = await this.setAttachments();
108
+ for (let attachment of attachments) {
109
+ msg += `--NextPart\n`;
110
+ msg += `Content-Type: ${attachment.contentType}; name="${attachment.filename}"\n`;
111
+ msg += `Content-Disposition: attachment; filename="${attachment.filename}"\n`;
112
+ msg += `Content-Transfer-Encoding: base64\n\n`;
113
+ msg += `${Buffer.from(attachment.content).toString('base64')}\n\n`;
114
+ }
115
+ msg += `--NextPart--`;
116
+ return msg;
117
+ }
118
+ stripOffUnwantedChars(identifier) {
119
+ return identifier.replace('<', '').replace('>', '');
120
+ }
121
+ async setTrackingPixel(trackingId, trackingPixelId) {
122
+ const trackingPixel = await this.mailService.getTrackingPixel(trackingId, trackingPixelId);
123
+ if (!trackingPixel)
124
+ return this.options.html;
125
+ return `${this.options.html}${trackingPixel}`;
126
+ }
127
+ }
128
+ exports.ProcessSesRawMail = ProcessSesRawMail;
129
+ //# sourceMappingURL=process.ses.raw.mail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.ses.raw.mail.js","sourceRoot":"","sources":["../../../src/platformUtility/libraries/process.ses.raw.mail.ts"],"names":[],"mappings":";;;AAIA,8EAAwE;AACxE,oDAA0D;AAC1D,uEAAiE;AAQjE,MAAa,iBAAkB,SAAQ,8CAAoB;IAOvD,YACuB,eAAgC,EACzC,OAAuB,EACd,gBAAkC,EAClC,WAAwB;QAE3C,KAAK,EAAE,CAAC;QALW,oBAAe,GAAf,eAAe,CAAiB;QACzC,YAAO,GAAP,OAAO,CAAgB;QACd,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,gBAAW,GAAX,WAAW,CAAa;IAG/C,CAAC;IAOD,KAAK,CAAC,OAAO;QACT,MAAM,QAAQ,GAAQ,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEpE,OAAO;YACH,UAAU;YACV,UAAU,EAAE,QAAQ,EAAE,UAAU;YAChC,UAAU,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE;YACzC,WAAW,EAAE,QAAQ,EAAE,WAAW;SACrC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE/C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE3D,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QAEzF,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,kCAAe,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;YAEvE,UAAU,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;YAEpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YAEvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAC1E,IAAI,QAAQ;gBAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IACnG,CAAC;IAEO,KAAK,CAAC,WAAW;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,kCAAe,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;QAEtC,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gCAAgC,EAAE,aAAa,CAAC,CAAC;QAC5G,IAAI,SAAS,GAAG,IAAI,UAAU,IAAI,mBAAmB,GAAG,CAAC;QAEzD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,gBAAwB,EAAE,UAAkB;QAC9E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEzC,MAAM,GAAG,GAAG;YACR,YAAY,EAAE,CAAC,KAAK,CAAC;YACrB,oBAAoB,EAAE,gBAAgB;YAEtC,UAAU,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;aAChC;SACJ,CAAC;QAEF,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,gCAAmB,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACtB,IAAI,MAAM,GAAa,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAExE,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,SAAS,CAAC,MAAgB,EAAE,IAAS;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,UAAkB,EAAE,eAAuB;QAClF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErH,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAAE,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAEnG,IAAI,GAAG,GAAG,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAEzC,GAAG,IAAI,OAAO,WAAW,IAAI,CAAC;QAE9B,GAAG,IAAI,OAAO,WAAW,IAAI,CAAC;QAE9B,GAAG,IAAI,QAAQ,YAAY,IAAI,CAAC;QAEhC,GAAG,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC;QAE5C,GAAG,IAAI,eAAe,UAAU,IAAI,CAAC;QAErC,GAAG,IAAI,qBAAqB,CAAC;QAE7B,GAAG,IAAI,wDAAwD,CAAC;QAChE,GAAG,IAAI,cAAc,CAAC;QACtB,GAAG,IAAI,6DAA6D,CAAC;QACrE,GAAG,IAAI,aAAa,CAAC;QACrB,GAAG,IAAI,4CAA4C,CAAC;QACpD,GAAG,IAAI,qCAAqC,CAAC;QAC7C,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC;QACrB,GAAG,IAAI,iBAAiB,CAAC;QAEzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;YACjC,GAAG,IAAI,cAAc,CAAC;YACtB,GAAG,IAAI,iBAAiB,UAAU,CAAC,WAAW,WAAW,UAAU,CAAC,QAAQ,KAAK,CAAC;YAClF,GAAG,IAAI,8CAA8C,UAAU,CAAC,QAAQ,KAAK,CAAC;YAC9E,GAAG,IAAI,uCAAuC,CAAC;YAC/C,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvE,CAAC;QAED,GAAG,IAAI,cAAc,CAAC;QAEtB,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,qBAAqB,CAAC,UAAkB;QAC5C,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,eAAuB;QACtE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC3F,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAE7C,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;IAClD,CAAC;CACJ;AAxKD,8CAwKC"}
@@ -1,14 +1,24 @@
1
1
  import { PropertyService } from '../../system/services/property.service';
2
+ import { MailService } from '../services/mail.service';
2
3
  import { MailOptionsDto } from './../dtos/mail.options.dto';
3
4
  import { ProcessCommonSmtpMail } from './process.common.smtp.mail';
4
5
  export declare class ProcessSmtpMail extends ProcessCommonSmtpMail {
5
6
  protected readonly propertyService: PropertyService;
6
7
  protected options: MailOptionsDto;
7
- constructor(propertyService: PropertyService, options: MailOptionsDto);
8
+ protected mailService: MailService;
9
+ constructor(propertyService: PropertyService, options: MailOptionsDto, mailService: MailService);
8
10
  process(): Promise<{
9
11
  identifier: any;
12
+ trackingId: any;
10
13
  attributes: {
11
14
  smtp: any;
12
15
  };
16
+ track_pairs: any;
13
17
  }>;
18
+ protected send(): Promise<unknown>;
19
+ private setTracking;
20
+ private setTrackingPixel;
21
+ private getTrackPairs;
22
+ private getAllEmails;
23
+ private getEmails;
14
24
  }
@@ -1,19 +1,111 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProcessSmtpMail = void 0;
4
+ const platform_utility_1 = require("../../common/libraries/platform.utility");
4
5
  const process_common_smtp_mail_1 = require("./process.common.smtp.mail");
6
+ const nodemailer = require("nodemailer");
5
7
  class ProcessSmtpMail extends process_common_smtp_mail_1.ProcessCommonSmtpMail {
6
- constructor(propertyService, options) {
8
+ constructor(propertyService, options, mailService) {
7
9
  super();
8
10
  this.propertyService = propertyService;
9
11
  this.options = options;
12
+ this.mailService = mailService;
10
13
  }
11
14
  async process() {
12
15
  const response = await this.send();
13
- global.console.log('response original', response);
14
- const identifier = response?.messageId || null;
15
- global.console.log('identifier', identifier);
16
- return { identifier, attributes: { smtp: response } };
16
+ return {
17
+ identifier: response?.identifier,
18
+ trackingId: response?.trackingId,
19
+ attributes: { smtp: response },
20
+ track_pairs: response?.track_pairs,
21
+ };
22
+ }
23
+ async send() {
24
+ const config = await this.getConfig();
25
+ if (!config) {
26
+ global.console.log('configuration for smtp is missing');
27
+ return;
28
+ }
29
+ const transporter = nodemailer.createTransport({
30
+ host: config.host,
31
+ port: +config.port,
32
+ auth: {
33
+ user: config.username,
34
+ pass: config.password,
35
+ },
36
+ });
37
+ const attachments = await this.setAttachments();
38
+ const to = Array.isArray(this.options.to) ? this.options.to.join(',') : this.options.to;
39
+ const referenceBaseDomain = await this.propertyService.get('ses.mail.reference.base.domain', 'finnoto.dev');
40
+ const { trackingId, trackingPixelId } = await this.setTracking();
41
+ let reference = `${trackingId}@${referenceBaseDomain}`;
42
+ const message = {
43
+ from: this.options.from || this.config.from,
44
+ to,
45
+ subject: this.options.subject,
46
+ html: this.options.html,
47
+ attachments,
48
+ cc: this.options?.cc || [],
49
+ bcc: this.options?.bcc || [],
50
+ references: reference,
51
+ };
52
+ return new Promise((resolve, reject) => {
53
+ return transporter.sendMail(message, (err, info) => {
54
+ if (err)
55
+ return reject(err);
56
+ let identifier = `${trackingId}@${referenceBaseDomain}`;
57
+ info['identifier'] = identifier;
58
+ if (!this.options.tracking_enabled)
59
+ return resolve(info);
60
+ info['tracking_id'] = trackingId;
61
+ const track_pairs = this.getTrackPairs(trackingPixelId);
62
+ track_pairs[trackingPixelId] = { email: null };
63
+ info['track_pairs'] = track_pairs;
64
+ return resolve(info);
65
+ });
66
+ });
67
+ }
68
+ async setTracking() {
69
+ const now = new Date().getTime();
70
+ const random = platform_utility_1.PlatformUtility.generateRandomAlphaNumeric(32);
71
+ const trackingId = `${now}.${random}`;
72
+ const trackingPixelId = platform_utility_1.PlatformUtility.generateRandomAlphaNumeric(32);
73
+ if (!this.options.tracking_enabled)
74
+ return { trackingId, trackingPixelId };
75
+ await this.setTrackingPixel(trackingId, trackingPixelId);
76
+ }
77
+ async setTrackingPixel(trackingId, trackingPixelId) {
78
+ const trackingPixel = await this.mailService.getTrackingPixel(trackingId, trackingPixelId);
79
+ if (!trackingPixel)
80
+ return;
81
+ this.options.html = this.options.html + trackingPixel;
82
+ }
83
+ getTrackPairs(trackingPixelId) {
84
+ const emails = this.getAllEmails();
85
+ const track_pairs = {};
86
+ for (const email in emails) {
87
+ track_pairs[email] = trackingPixelId;
88
+ }
89
+ return track_pairs;
90
+ }
91
+ getAllEmails() {
92
+ let emails = [];
93
+ if (this.options.to)
94
+ emails = this.getEmails(emails, this.options.to);
95
+ if (this.options.cc)
96
+ emails = this.getEmails(emails, this.options.cc);
97
+ if (this.options.bcc)
98
+ emails = this.getEmails(emails, this.options.bcc);
99
+ return emails;
100
+ }
101
+ getEmails(emails, data) {
102
+ if (Array.isArray(data)) {
103
+ emails.push(...data);
104
+ }
105
+ else {
106
+ emails.push(data);
107
+ }
108
+ return emails;
17
109
  }
18
110
  }
19
111
  exports.ProcessSmtpMail = ProcessSmtpMail;
@@ -1 +1 @@
1
- {"version":3,"file":"process.smtp.mail.js","sourceRoot":"","sources":["../../../src/platformUtility/libraries/process.smtp.mail.ts"],"names":[],"mappings":";;;AAEA,yEAAmE;AAQnE,MAAa,eAAgB,SAAQ,gDAAqB;IAMtD,YACuB,eAAgC,EACzC,OAAuB;QAEjC,KAAK,EAAE,CAAC;QAHW,oBAAe,GAAf,eAAe,CAAiB;QACzC,YAAO,GAAP,OAAO,CAAgB;IAGrC,CAAC;IAOD,KAAK,CAAC,OAAO;QACT,MAAM,QAAQ,GAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC;QAC/C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC1D,CAAC;CACJ;AA3BD,0CA2BC"}
1
+ {"version":3,"file":"process.smtp.mail.js","sourceRoot":"","sources":["../../../src/platformUtility/libraries/process.smtp.mail.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
1
  import { LoadFailedBullJob } from '../jobs/load.failed.bull.job';
2
+ import { ProcessSesDeliveryWebhookJob } from '../jobs/process.ses.delivery.webhook.job';
3
+ import { ProcessTrackingWebhookJob } from '../jobs/process.tracking.webhook.job';
2
4
  import { RecordWatcherJob } from '../jobs/record.watcher.job';
3
5
  import { ReloadPendingBullJob } from '../jobs/reload.pending.bull.job';
4
6
  import { TestJob } from '../jobs/test.job';
5
7
  export declare class Es6JobsService {
6
8
  private readonly loadFailedBullJob;
9
+ private readonly processSesDeliveryWebhookJob;
10
+ private readonly processTrackingWebhookJob;
7
11
  private readonly recordWatcherJob;
8
12
  private readonly reloadPendingBullJob;
9
13
  private readonly testJob;
10
14
  private jobs;
11
- constructor(loadFailedBullJob: LoadFailedBullJob, recordWatcherJob: RecordWatcherJob, reloadPendingBullJob: ReloadPendingBullJob, testJob: TestJob);
15
+ constructor(loadFailedBullJob: LoadFailedBullJob, processSesDeliveryWebhookJob: ProcessSesDeliveryWebhookJob, processTrackingWebhookJob: ProcessTrackingWebhookJob, recordWatcherJob: RecordWatcherJob, reloadPendingBullJob: ReloadPendingBullJob, testJob: TestJob);
12
16
  alignJobs(): void;
13
17
  setJobs(): void;
14
18
  }
@@ -12,13 +12,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Es6JobsService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const load_failed_bull_job_1 = require("../jobs/load.failed.bull.job");
15
+ const process_ses_delivery_webhook_job_1 = require("../jobs/process.ses.delivery.webhook.job");
16
+ const process_tracking_webhook_job_1 = require("../jobs/process.tracking.webhook.job");
15
17
  const record_watcher_job_1 = require("../jobs/record.watcher.job");
16
18
  const reload_pending_bull_job_1 = require("../jobs/reload.pending.bull.job");
17
19
  const test_job_1 = require("../jobs/test.job");
18
20
  const platform_utility_1 = require("../../common/libraries/platform.utility");
19
21
  let Es6JobsService = class Es6JobsService {
20
- constructor(loadFailedBullJob, recordWatcherJob, reloadPendingBullJob, testJob) {
22
+ constructor(loadFailedBullJob, processSesDeliveryWebhookJob, processTrackingWebhookJob, recordWatcherJob, reloadPendingBullJob, testJob) {
21
23
  this.loadFailedBullJob = loadFailedBullJob;
24
+ this.processSesDeliveryWebhookJob = processSesDeliveryWebhookJob;
25
+ this.processTrackingWebhookJob = processTrackingWebhookJob;
22
26
  this.recordWatcherJob = recordWatcherJob;
23
27
  this.reloadPendingBullJob = reloadPendingBullJob;
24
28
  this.testJob = testJob;
@@ -29,6 +33,8 @@ let Es6JobsService = class Es6JobsService {
29
33
  alignJobs() {
30
34
  this.jobs = {
31
35
  f04947e1c8234dd7e98e3629147266f8: this.loadFailedBullJob,
36
+ '591ea88d3cccb55e60d5cf1178ccb42a': this.processSesDeliveryWebhookJob,
37
+ fd9a3406400161c9dae9f327f10eaa49: this.processTrackingWebhookJob,
32
38
  '2d5219897af8f7809c63c7ad538795f2': this.recordWatcherJob,
33
39
  '2585362654581cff4f70fffe0249af26': this.reloadPendingBullJob,
34
40
  ba4c3857dfa9feac842416d9c39d0edd: this.testJob,
@@ -42,6 +48,8 @@ exports.Es6JobsService = Es6JobsService;
42
48
  exports.Es6JobsService = Es6JobsService = __decorate([
43
49
  (0, common_1.Injectable)(),
44
50
  __metadata("design:paramtypes", [load_failed_bull_job_1.LoadFailedBullJob,
51
+ process_ses_delivery_webhook_job_1.ProcessSesDeliveryWebhookJob,
52
+ process_tracking_webhook_job_1.ProcessTrackingWebhookJob,
45
53
  record_watcher_job_1.RecordWatcherJob,
46
54
  reload_pending_bull_job_1.ReloadPendingBullJob,
47
55
  test_job_1.TestJob])
@@ -1 +1 @@
1
- {"version":3,"file":"es6.jobs.service.js","sourceRoot":"","sources":["../../../src/platformUtility/services/es6.jobs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uEAAiE;AACjE,mEAA8D;AAC9D,6EAAuE;AACvE,+CAA2C;AAC3C,8EAA0E;AAQnE,IAAM,cAAc,GAApB,MAAM,cAAc;IAGvB,YACqB,iBAAoC,EACpC,gBAAkC,EAClC,oBAA0C,EAC1C,OAAgB;QAHhB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,YAAO,GAAP,OAAO,CAAS;QAN7B,SAAI,GAAG,EAAE,CAAC;QAQd,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAMD,SAAS;QACL,IAAI,CAAC,IAAI,GAAG;YACR,gCAAgC,EAAE,IAAI,CAAC,iBAAiB;YACxD,kCAAkC,EAAE,IAAI,CAAC,gBAAgB;YACzD,kCAAkC,EAAE,IAAI,CAAC,oBAAoB;YAC7D,gCAAgC,EAAE,IAAI,CAAC,OAAO;SACjD,CAAC;IACN,CAAC;IAMD,OAAO;QACH,kCAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;AAjCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAK+B,wCAAiB;QAClB,qCAAgB;QACZ,8CAAoB;QACjC,kBAAO;GAP5B,cAAc,CAiC1B"}
1
+ {"version":3,"file":"es6.jobs.service.js","sourceRoot":"","sources":["../../../src/platformUtility/services/es6.jobs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uEAAiE;AACjE,+FAAwF;AACxF,uFAAiF;AACjF,mEAA8D;AAC9D,6EAAuE;AACvE,+CAA2C;AAC3C,8EAA0E;AAQnE,IAAM,cAAc,GAApB,MAAM,cAAc;IAGvB,YACqB,iBAAoC,EACpC,4BAA0D,EAC1D,yBAAoD,EACpD,gBAAkC,EAClC,oBAA0C,EAC1C,OAAgB;QALhB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,iCAA4B,GAA5B,4BAA4B,CAA8B;QAC1D,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,YAAO,GAAP,OAAO,CAAS;QAR7B,SAAI,GAAG,EAAE,CAAC;QAUd,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAMD,SAAS;QACL,IAAI,CAAC,IAAI,GAAG;YACR,gCAAgC,EAAE,IAAI,CAAC,iBAAiB;YACxD,kCAAkC,EAAE,IAAI,CAAC,4BAA4B;YACrE,gCAAgC,EAAE,IAAI,CAAC,yBAAyB;YAChE,kCAAkC,EAAE,IAAI,CAAC,gBAAgB;YACzD,kCAAkC,EAAE,IAAI,CAAC,oBAAoB;YAC7D,gCAAgC,EAAE,IAAI,CAAC,OAAO;SACjD,CAAC;IACN,CAAC;IAMD,OAAO;QACH,kCAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;AArCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAK+B,wCAAiB;QACN,+DAA4B;QAC/B,wDAAyB;QAClC,qCAAgB;QACZ,8CAAoB;QACjC,kBAAO;GAT5B,cAAc,CAqC1B"}
@@ -9,6 +9,7 @@ export * from './mail.service';
9
9
  export * from './maintenance.service';
10
10
  export * from './queue.service';
11
11
  export * from './remote.request.service';
12
+ export * from './ses.mail.notification.service';
12
13
  export * from './shutdown.service';
13
14
  export * from './sms.service';
14
15
  export * from './sql.service';
@@ -25,6 +25,7 @@ __exportStar(require("./mail.service"), exports);
25
25
  __exportStar(require("./maintenance.service"), exports);
26
26
  __exportStar(require("./queue.service"), exports);
27
27
  __exportStar(require("./remote.request.service"), exports);
28
+ __exportStar(require("./ses.mail.notification.service"), exports);
28
29
  __exportStar(require("./shutdown.service"), exports);
29
30
  __exportStar(require("./sms.service"), exports);
30
31
  __exportStar(require("./sql.service"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platformUtility/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAAA,uDAAqC;AAAA,uDAAqC;AAAA,kDAAgC;AAAA,mDAAiC;AAAA,6DAA2C;AAAA,2DAAyC;AAAA,iDAA+B;AAAA,wDAAsC;AAAA,kDAAgC;AAAA,2DAAyC;AAAA,qDAAmC;AAAA,gDAA8B;AAAA,gDAA8B;AAAA,gDAA8B;AAAA,oDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platformUtility/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAAA,uDAAqC;AAAA,uDAAqC;AAAA,kDAAgC;AAAA,mDAAiC;AAAA,6DAA2C;AAAA,2DAAyC;AAAA,iDAA+B;AAAA,wDAAsC;AAAA,kDAAgC;AAAA,2DAAyC;AAAA,kEAAgD;AAAA,qDAAmC;AAAA,gDAA8B;AAAA,gDAA8B;AAAA,gDAA8B;AAAA,oDAAiC"}
@@ -2,16 +2,19 @@ import { PropertyService } from '../../system/services/property.service';
2
2
  import { UploadService } from '../../system/services/upload.service';
3
3
  import { MailLogEntity } from './../../system/entities/mail.log.entity';
4
4
  import { MailOptionsDto } from './../dtos/mail.options.dto';
5
+ import { AwsConfigService } from './aws.config.service';
5
6
  export declare class MailService {
6
7
  private readonly propertyService;
7
8
  private readonly uploadService;
9
+ private readonly awsConfigService;
8
10
  private refreshTime;
9
11
  private gateway;
10
- constructor(propertyService: PropertyService, uploadService: UploadService);
12
+ constructor(propertyService: PropertyService, uploadService: UploadService, awsConfigService: AwsConfigService);
11
13
  send(options: MailOptionsDto, metadata?: any): Promise<MailLogEntity>;
12
14
  private getBody;
13
15
  private setRecipients;
14
16
  private setRecipient;
15
17
  private processMail;
16
18
  private getDefaultGateway;
19
+ getTrackingPixel(trackingId: string, trackingPixel: string): Promise<string>;
17
20
  }