@social-mail/social-mail-web-server 1.16.72 → 1.16.74
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 +20 -4
- package/dist/server/smtp/server/SmtpServerClient.js.map +1 -1
- package/package.json +1 -1
- package/src/server/smtp/server/SmtpServerClient.ts +16 -4
|
@@ -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,CAAS;gBAEI,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 = false;
|
|
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) {
|
|
@@ -90,7 +94,13 @@ let SmtpServerClient = class SmtpServerClient {
|
|
|
90
94
|
// we have reached the end..
|
|
91
95
|
break;
|
|
92
96
|
}
|
|
93
|
-
|
|
97
|
+
// remove first dot
|
|
98
|
+
if (line.startsWith(".")) {
|
|
99
|
+
await file.appendLine(line.substring(1));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
await file.appendLine(line);
|
|
103
|
+
}
|
|
94
104
|
await file.appendLine(next);
|
|
95
105
|
continue;
|
|
96
106
|
}
|
|
@@ -193,6 +203,12 @@ __decorate([
|
|
|
193
203
|
Inject,
|
|
194
204
|
__metadata("design:type", CertificateFetcher)
|
|
195
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);
|
|
196
212
|
__decorate([
|
|
197
213
|
RegexMethod(/^RCPT TO:\s*<([^>]+)>(?:\s+SMTPUTF8)?\s*$/i),
|
|
198
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 = false;
|
|
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)
|
|
@@ -113,7 +120,12 @@ export default class SmtpServerClient {
|
|
|
113
120
|
// we have reached the end..
|
|
114
121
|
break;
|
|
115
122
|
}
|
|
116
|
-
|
|
123
|
+
// remove first dot
|
|
124
|
+
if (line.startsWith(".")) {
|
|
125
|
+
await file.appendLine(line.substring(1));
|
|
126
|
+
} else {
|
|
127
|
+
await file.appendLine(line);
|
|
128
|
+
}
|
|
117
129
|
await file.appendLine(next);
|
|
118
130
|
continue;
|
|
119
131
|
}
|