@social-mail/social-mail-web-server 1.16.73 → 1.16.75
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/.tsbuildinfo +1 -1
- package/dist/server/smtp/server/SmtpServerClient.d.ts +2 -0
- package/dist/server/smtp/server/SmtpServerClient.d.ts.map +1 -1
- package/dist/server/smtp/server/SmtpServerClient.js +13 -3
- package/dist/server/smtp/server/SmtpServerClient.js.map +1 -1
- package/package.json +1 -1
- package/src/server/smtp/server/SmtpServerClient.ts +10 -3
|
@@ -12,8 +12,10 @@ export default class SmtpServerClient {
|
|
|
12
12
|
private tfs;
|
|
13
13
|
private receiver;
|
|
14
14
|
private certificateFetcher;
|
|
15
|
+
private continue;
|
|
15
16
|
constructor(server: SmtpServer, socket: SocketClient);
|
|
16
17
|
start(): Promise<void>;
|
|
18
|
+
commandQUIT(): void;
|
|
17
19
|
commandRCPT(to: string, smtpUtf8: any): Promise<void>;
|
|
18
20
|
commandDATA(): Promise<void>;
|
|
19
21
|
commandMAIL(from: string, smtpUtf8: any): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmtpServerClient.d.ts","sourceRoot":"","sources":["../../../../src/server/smtp/server/SmtpServerClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,YAAY,MAAM,kDAAkD,CAAC;AAW5E,MAAM,CAAC,OAAO,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"SmtpServerClient.d.ts","sourceRoot":"","sources":["../../../../src/server/smtp/server/SmtpServerClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,YAAY,MAAM,kDAAkD,CAAC;AAW5E,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAyBrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAc,OAAO,CAAC,MAAM;IAvBxD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,cAAc,EAAE,MAAM,CAAC;IAEvB,aAAa,EAAE,MAAM,CAAC;IAEtB,IAAI,EAAE,MAAM,CAAC;IAEb,EAAE,EAAE,MAAM,EAAE,CAAC;IAEpB,OAAO,CAAC,EAAE,CAAyB;IAGnC,OAAO,CAAC,GAAG,CAAkB;IAG7B,OAAO,CAAC,QAAQ,CAAsB;IAGtC,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,QAAQ,CAAQ;gBAEK,MAAM,EAAE,UAAU,EAAU,MAAM,EAAE,YAAY;IAGvE,KAAK;IA8CX,WAAW;IAKL,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAcrC,WAAW;IAgCX,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAcvC,WAAW,CAAC,IAAI,KAAA;IAOhB,WAAW,CAAC,UAAU,KAAA;IAetB,SAAS,CAAC,IAAI,EAAE,MAAM;IAKtB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAIzC,OAAO;IAKb,KAAK;IASC,eAAe;IA8Bf,kBAAkB;CAS3B"}
|
|
@@ -22,6 +22,7 @@ let SmtpServerClient = class SmtpServerClient {
|
|
|
22
22
|
this.server = server;
|
|
23
23
|
this.socket = socket;
|
|
24
24
|
this.ac = new AbortController();
|
|
25
|
+
this.continue = true;
|
|
25
26
|
}
|
|
26
27
|
async start() {
|
|
27
28
|
this.remoteAddress = this.socket.remoteAddress?.replace(/^\:\:ffff\:/, "");
|
|
@@ -38,14 +39,12 @@ let SmtpServerClient = class SmtpServerClient {
|
|
|
38
39
|
await this.writeLine(`220 SOCIALMAIL ESMTP ${globalEnv.version} Ready`);
|
|
39
40
|
if (!this.socket.secure) {
|
|
40
41
|
if (!await this.processCommands()) {
|
|
41
|
-
console.log(`Returning as TLS not started`);
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
const signal = this.ac.signal;
|
|
46
|
-
for (
|
|
46
|
+
for (; this.continue;) {
|
|
47
47
|
const line = await this.socket.readLine(signal);
|
|
48
|
-
console.log(`Line received: ${line}`);
|
|
49
48
|
try {
|
|
50
49
|
const r = runRegexMethod(line, this);
|
|
51
50
|
if (!r) {
|
|
@@ -61,6 +60,11 @@ let SmtpServerClient = class SmtpServerClient {
|
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
62
|
}
|
|
63
|
+
await this.writeLine(`221 Closing ESMTP`);
|
|
64
|
+
await this.destroy();
|
|
65
|
+
}
|
|
66
|
+
commandQUIT() {
|
|
67
|
+
this.continue = false;
|
|
64
68
|
}
|
|
65
69
|
async commandRCPT(to, smtpUtf8) {
|
|
66
70
|
if (!this.from) {
|
|
@@ -199,6 +203,12 @@ __decorate([
|
|
|
199
203
|
Inject,
|
|
200
204
|
__metadata("design:type", CertificateFetcher)
|
|
201
205
|
], SmtpServerClient.prototype, "certificateFetcher", void 0);
|
|
206
|
+
__decorate([
|
|
207
|
+
RegexMethod(/^QUIT\s*$/i),
|
|
208
|
+
__metadata("design:type", Function),
|
|
209
|
+
__metadata("design:paramtypes", []),
|
|
210
|
+
__metadata("design:returntype", void 0)
|
|
211
|
+
], SmtpServerClient.prototype, "commandQUIT", null);
|
|
202
212
|
__decorate([
|
|
203
213
|
RegexMethod(/^RCPT TO:\s*<([^>]+)>(?:\s+SMTPUTF8)?\s*$/i),
|
|
204
214
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmtpServerClient.js","sourceRoot":"","sources":["../../../../src/server/smtp/server/SmtpServerClient.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,YAAY,MAAM,kDAAkD,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAG3C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;
|
|
1
|
+
{"version":3,"file":"SmtpServerClient.js","sourceRoot":"","sources":["../../../../src/server/smtp/server/SmtpServerClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -34,6 +34,8 @@ export default class SmtpServerClient {
|
|
|
34
34
|
@Inject
|
|
35
35
|
private certificateFetcher: CertificateFetcher;
|
|
36
36
|
|
|
37
|
+
private continue = true;
|
|
38
|
+
|
|
37
39
|
constructor(private readonly server: SmtpServer, private socket: SocketClient) {
|
|
38
40
|
}
|
|
39
41
|
|
|
@@ -56,15 +58,13 @@ export default class SmtpServerClient {
|
|
|
56
58
|
|
|
57
59
|
if (!this.socket.secure) {
|
|
58
60
|
if(!await this.processCommands()) {
|
|
59
|
-
console.log(`Returning as TLS not started`);
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
64
|
const signal = this.ac.signal;
|
|
64
65
|
|
|
65
|
-
for(
|
|
66
|
+
for(;this.continue;) {
|
|
66
67
|
const line = await this.socket.readLine(signal);
|
|
67
|
-
console.log(`Line received: ${line}`);
|
|
68
68
|
try {
|
|
69
69
|
const r = runRegexMethod(line, this);
|
|
70
70
|
if(!r) {
|
|
@@ -80,6 +80,13 @@ export default class SmtpServerClient {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
await this.writeLine(`221 Closing ESMTP`);
|
|
84
|
+
await this.destroy();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@RegexMethod(/^QUIT\s*$/i)
|
|
88
|
+
commandQUIT() {
|
|
89
|
+
this.continue = false;
|
|
83
90
|
}
|
|
84
91
|
|
|
85
92
|
@RegexMethod(/^RCPT TO:\s*<([^>]+)>(?:\s+SMTPUTF8)?\s*$/i)
|