@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.
- package/dist/migrations/1710834052315-AddTrackingIdentifierSysMailLogsTable.d.ts +5 -0
- package/dist/migrations/1710834052315-AddTrackingIdentifierSysMailLogsTable.js +17 -0
- package/dist/migrations/1710834052315-AddTrackingIdentifierSysMailLogsTable.js.map +1 -0
- package/dist/migrations/1717761722433-AddTrackColumnsSysMailRecipientsTable.d.ts +5 -0
- package/dist/migrations/1717761722433-AddTrackColumnsSysMailRecipientsTable.js +17 -0
- package/dist/migrations/1717761722433-AddTrackColumnsSysMailRecipientsTable.js.map +1 -0
- package/dist/platformUtility/dtos/mail.options.dto.d.ts +2 -0
- package/dist/platformUtility/dtos/mail.options.dto.js +10 -0
- package/dist/platformUtility/dtos/mail.options.dto.js.map +1 -1
- package/dist/platformUtility/es6.classes.d.ts +7 -3
- package/dist/platformUtility/es6.classes.js +9 -1
- package/dist/platformUtility/es6.classes.js.map +1 -1
- package/dist/platformUtility/jobs/index.d.ts +2 -0
- package/dist/platformUtility/jobs/index.js +2 -0
- package/dist/platformUtility/jobs/index.js.map +1 -1
- package/dist/platformUtility/jobs/process.ses.delivery.webhook.job.d.ts +9 -0
- package/dist/platformUtility/jobs/process.ses.delivery.webhook.job.js +44 -0
- package/dist/platformUtility/jobs/process.ses.delivery.webhook.job.js.map +1 -0
- package/dist/platformUtility/jobs/process.tracking.webhook.job.d.ts +8 -0
- package/dist/platformUtility/jobs/process.tracking.webhook.job.js +41 -0
- package/dist/platformUtility/jobs/process.tracking.webhook.job.js.map +1 -0
- package/dist/platformUtility/libraries/index.d.ts +2 -0
- package/dist/platformUtility/libraries/index.js +2 -0
- package/dist/platformUtility/libraries/index.js.map +1 -1
- package/dist/platformUtility/libraries/process.common.mail.d.ts +1 -0
- package/dist/platformUtility/libraries/process.common.mail.js +9 -0
- package/dist/platformUtility/libraries/process.common.mail.js.map +1 -1
- package/dist/platformUtility/libraries/process.common.ses.mail.d.ts +15 -0
- package/dist/platformUtility/libraries/process.common.ses.mail.js +40 -0
- package/dist/platformUtility/libraries/process.common.ses.mail.js.map +1 -0
- package/dist/platformUtility/libraries/process.common.smtp.mail.d.ts +6 -3
- package/dist/platformUtility/libraries/process.common.smtp.mail.js +0 -38
- package/dist/platformUtility/libraries/process.common.smtp.mail.js.map +1 -1
- package/dist/platformUtility/libraries/process.ses.mail.d.ts +13 -4
- package/dist/platformUtility/libraries/process.ses.mail.js +79 -6
- package/dist/platformUtility/libraries/process.ses.mail.js.map +1 -1
- package/dist/platformUtility/libraries/process.ses.raw.mail.d.ts +33 -0
- package/dist/platformUtility/libraries/process.ses.raw.mail.js +129 -0
- package/dist/platformUtility/libraries/process.ses.raw.mail.js.map +1 -0
- package/dist/platformUtility/libraries/process.smtp.mail.d.ts +11 -1
- package/dist/platformUtility/libraries/process.smtp.mail.js +97 -5
- package/dist/platformUtility/libraries/process.smtp.mail.js.map +1 -1
- package/dist/platformUtility/services/es6.jobs.service.d.ts +5 -1
- package/dist/platformUtility/services/es6.jobs.service.js +9 -1
- package/dist/platformUtility/services/es6.jobs.service.js.map +1 -1
- package/dist/platformUtility/services/index.d.ts +1 -0
- package/dist/platformUtility/services/index.js +1 -0
- package/dist/platformUtility/services/index.js.map +1 -1
- package/dist/platformUtility/services/mail.service.d.ts +4 -1
- package/dist/platformUtility/services/mail.service.js +30 -14
- package/dist/platformUtility/services/mail.service.js.map +1 -1
- package/dist/platformUtility/services/ses.mail.notification.service.d.ts +10 -0
- package/dist/platformUtility/services/ses.mail.notification.service.js +53 -0
- package/dist/platformUtility/services/ses.mail.notification.service.js.map +1 -0
- package/dist/system/entities/mail.log.entity.d.ts +3 -0
- package/dist/system/entities/mail.log.entity.js +12 -0
- package/dist/system/entities/mail.log.entity.js.map +1 -1
- package/dist/system/entities/mail.recipient.entity.d.ts +3 -0
- package/dist/system/entities/mail.recipient.entity.js +12 -0
- package/dist/system/entities/mail.recipient.entity.js.map +1 -1
- 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
|
5
|
-
|
6
|
-
|
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.
|
13
|
-
const identifier =
|
14
|
-
return {
|
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":";;;
|
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":"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"}
|
@@ -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
|
-
|
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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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":";;;
|
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;
|
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
|
}
|