@aldb2b/common 1.0.645 → 1.0.648
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/build/common/const/smtp-codes.d.ts +2 -0
- package/build/common/const/smtp-codes.js +5 -1
- package/build/common/const/smtp-codes.js.map +1 -1
- package/build/common/services/common.service.js +1 -1
- package/build/common/services/common.service.js.map +1 -1
- package/build/common/utils/validate-smtp.d.ts +1 -1
- package/build/common/utils/validate-smtp.js +56 -54
- package/build/common/utils/validate-smtp.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
export declare const smtpCodes: {
|
|
2
3
|
101: string;
|
|
3
4
|
111: string;
|
|
@@ -57,3 +58,4 @@ export declare const smtpCodes: {
|
|
|
57
58
|
555: string;
|
|
58
59
|
556: string;
|
|
59
60
|
};
|
|
61
|
+
export declare const hasCode: (message: Buffer, code: number) => boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.smtpCodes = void 0;
|
|
3
|
+
exports.hasCode = exports.smtpCodes = void 0;
|
|
4
4
|
exports.smtpCodes = {
|
|
5
5
|
101: 'Invalid SSL or TLS configuration',
|
|
6
6
|
111: 'Error connecting with the remote SMTP server',
|
|
@@ -60,4 +60,8 @@ exports.smtpCodes = {
|
|
|
60
60
|
555: 'Wrong protocol version',
|
|
61
61
|
556: 'Email sent is too large for the recipients email server to process',
|
|
62
62
|
};
|
|
63
|
+
const hasCode = (message, code) => {
|
|
64
|
+
return message.indexOf(`${code}`) === 0 || message.indexOf(`${code}\n`) > -1;
|
|
65
|
+
};
|
|
66
|
+
exports.hasCode = hasCode;
|
|
63
67
|
//# sourceMappingURL=smtp-codes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smtp-codes.js","sourceRoot":"","sources":["../../../src/common/const/smtp-codes.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,GAAG,EAAE,kCAAkC;IACvC,GAAG,EAAE,8CAA8C;IACnD,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,6CAA6C;IAClD,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,gDAAgD;IACrD,GAAG,EAAE,8CAA8C;IACnD,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,mEAAmE;IACxE,GAAG,EAAE,8EAA8E;IACnF,GAAG,EAAE,oDAAoD;IACzD,GAAG,EAAE,2CAA2C;IAChD,GAAG,EAAE,6EAA6E;IAClF,GAAG,EAAE,uEAAuE;IAC5E,GAAG,EAAE,kGAAkG;IACvG,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,uGAAuG;IAC5G,GAAG,EAAE,2GAA2G;IAChH,GAAG,EAAE,mCAAmC;IACxC,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,6DAA6D;IAClE,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,mCAAmC;IACxC,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,2CAA2C;IAChD,GAAG,EAAE,qCAAqC;IAC1C,GAAG,EAAE,uDAAuD;IAC5D,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,sCAAsC;IAC3C,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,uDAAuD;IAC5D,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,4CAA4C;IACjD,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,iDAAiD;IACtD,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,sDAAsD;IAC3D,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,oEAAoE;CAC1E,CAAA"}
|
|
1
|
+
{"version":3,"file":"smtp-codes.js","sourceRoot":"","sources":["../../../src/common/const/smtp-codes.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,GAAG,EAAE,kCAAkC;IACvC,GAAG,EAAE,8CAA8C;IACnD,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,6CAA6C;IAClD,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,gDAAgD;IACrD,GAAG,EAAE,8CAA8C;IACnD,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,mEAAmE;IACxE,GAAG,EAAE,8EAA8E;IACnF,GAAG,EAAE,oDAAoD;IACzD,GAAG,EAAE,2CAA2C;IAChD,GAAG,EAAE,6EAA6E;IAClF,GAAG,EAAE,uEAAuE;IAC5E,GAAG,EAAE,kGAAkG;IACvG,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,uGAAuG;IAC5G,GAAG,EAAE,2GAA2G;IAChH,GAAG,EAAE,mCAAmC;IACxC,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,6DAA6D;IAClE,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,mCAAmC;IACxC,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,2CAA2C;IAChD,GAAG,EAAE,qCAAqC;IAC1C,GAAG,EAAE,uDAAuD;IAC5D,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,sCAAsC;IAC3C,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,uDAAuD;IAC5D,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,4CAA4C;IACjD,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,iDAAiD;IACtD,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,sDAAsD;IAC3D,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,oEAAoE;CAC1E,CAAA;AAEM,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,IAAY,EAAW,EAAE;IAChE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9E,CAAC,CAAA;AAFY,QAAA,OAAO,WAEnB"}
|
|
@@ -26,7 +26,7 @@ class CommonService {
|
|
|
26
26
|
mx = await (0, get_mx_1.getMX)(domain);
|
|
27
27
|
}
|
|
28
28
|
if (options.validateSMTP) {
|
|
29
|
-
await
|
|
29
|
+
await (0, validate_smtp_1.checkSMTP)(config_1.emailSender, email, mx.exchange);
|
|
30
30
|
}
|
|
31
31
|
return { success: true };
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.service.js","sourceRoot":"","sources":["../../../src/common/services/common.service.ts"],"names":[],"mappings":";;;AAAA,qDAAyC;AACzC,8FAAuF;AAGvF,4CAAuC;AACvC,4CAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"common.service.js","sourceRoot":"","sources":["../../../src/common/services/common.service.ts"],"names":[],"mappings":";;;AAAA,qDAAyC;AACzC,8FAAuF;AAGvF,4CAAuC;AACvC,4CAAwD;AACxD,0DAAkD;AAElD,oCAAwC;AAExC,MAAa,aAAa;IACxB,gBAAe,CAAC;IAEhB,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,OAA+B;QAE/B,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,8DAA4B,CAAA;YACxC,CAAC;YAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,IAAA,yBAAO,EAAC,KAAK,CAAC,CAAA;gBACrC,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;oBAC5B,MAAM,qBAAa,CAAA;gBACrB,CAAC;YACH,CAAC;YAED,IAAI,EAAY,CAAA;YAChB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClC,EAAE,GAAG,MAAM,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;YAC1B,CAAC;YAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,IAAA,yBAAS,EAAC,oBAAW,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;YAClD,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAA;YACxE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;aACjE,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAtCD,sCAsCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const checkSMTP: (sender: string, recipient: string, exchange: string) => Promise<void>;
|
|
@@ -1,52 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
const config_1 = require("../const/config");
|
|
6
|
-
const smtp_codes_1 = require("../const/smtp-codes");
|
|
3
|
+
exports.checkSMTP = void 0;
|
|
4
|
+
const net_1 = require("net");
|
|
7
5
|
const const_1 = require("../const");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
const checkSMTP = async (sender, recipient, exchange) => {
|
|
7
|
+
const timeout = 1000 * 60;
|
|
8
|
+
return new Promise(resolve => {
|
|
9
|
+
let receivedData = false;
|
|
10
|
+
let closed = false;
|
|
11
|
+
const socket = net_1.default.createConnection(587, exchange);
|
|
12
|
+
socket.setEncoding('ascii');
|
|
13
|
+
socket.setTimeout(timeout);
|
|
14
|
+
socket.on('error', error => {
|
|
15
|
+
socket.emit('fail', error);
|
|
17
16
|
});
|
|
18
|
-
socket.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const success = msg.indexOf('220') !== -1 || msg.indexOf('250') !== -1;
|
|
22
|
-
if (success) {
|
|
23
|
-
socket.emit('next');
|
|
17
|
+
socket.on('close', hadError => {
|
|
18
|
+
if (!receivedData && !hadError) {
|
|
19
|
+
socket.emit('fail', 'Mail server closed connection without sending any data.');
|
|
24
20
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (smtpCode) {
|
|
28
|
-
socket.emit('fail', smtp_codes_1.smtpCodes[smtpCode]);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
socket.emit('fail');
|
|
32
|
-
}
|
|
21
|
+
if (!closed) {
|
|
22
|
+
socket.emit('fail', 'Mail server closed connection unexpectedly.');
|
|
33
23
|
}
|
|
34
24
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
socket.emit('fail', 'Unrecognized SMTP response.');
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
socket.emit('success');
|
|
25
|
+
socket.once('fail', msg => {
|
|
26
|
+
closed = true;
|
|
27
|
+
resolve(msg);
|
|
28
|
+
if (socket.writable && !socket.destroyed) {
|
|
29
|
+
socket.write(`quit\r\n`);
|
|
30
|
+
socket.end();
|
|
31
|
+
socket.destroy();
|
|
47
32
|
}
|
|
48
33
|
});
|
|
49
34
|
socket.on('success', () => {
|
|
35
|
+
closed = true;
|
|
50
36
|
if (socket.writable && !socket.destroyed) {
|
|
51
37
|
socket.write(`quit\r\n`);
|
|
52
38
|
socket.end();
|
|
@@ -54,27 +40,43 @@ const validateSMTP = async (sender, email, exchange, port) => {
|
|
|
54
40
|
}
|
|
55
41
|
resolve();
|
|
56
42
|
});
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
43
|
+
const commands = [
|
|
44
|
+
`helo ${exchange}\r\n`,
|
|
45
|
+
`mail from: <${sender}>\r\n`,
|
|
46
|
+
`rcpt to: <${recipient}>\r\n`,
|
|
47
|
+
];
|
|
48
|
+
let i = 0;
|
|
49
|
+
socket.on('next', () => {
|
|
50
|
+
if (i < 3) {
|
|
51
|
+
if (socket.writable) {
|
|
52
|
+
socket.write(commands[i++]);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
socket.emit('fail', 'SMTP communication unexpectedly closed.');
|
|
56
|
+
}
|
|
63
57
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (socket.writable && !socket.destroyed) {
|
|
67
|
-
socket.write(`quit\r\n`);
|
|
68
|
-
socket.end();
|
|
69
|
-
socket.destroy();
|
|
58
|
+
else {
|
|
59
|
+
socket.emit('success');
|
|
70
60
|
}
|
|
71
|
-
const message = msg ? msg : 'Unrecognized SMTP response.';
|
|
72
|
-
reject(Object.assign({}, const_1.INVALID_SMTP, { message: message }));
|
|
73
61
|
});
|
|
74
62
|
socket.on('timeout', () => {
|
|
75
63
|
socket.emit('fail', 'Timeout');
|
|
76
64
|
});
|
|
65
|
+
socket.on('connect', () => {
|
|
66
|
+
socket.on('data', msg => {
|
|
67
|
+
receivedData = true;
|
|
68
|
+
if ((0, const_1.hasCode)(msg, 220) || (0, const_1.hasCode)(msg, 250)) {
|
|
69
|
+
socket.emit('next', msg);
|
|
70
|
+
}
|
|
71
|
+
else if ((0, const_1.hasCode)(msg, 550)) {
|
|
72
|
+
socket.emit('fail', 'Mailbox not found.');
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
socket.emit('fail');
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
77
79
|
});
|
|
78
80
|
};
|
|
79
|
-
exports.
|
|
81
|
+
exports.checkSMTP = checkSMTP;
|
|
80
82
|
//# sourceMappingURL=validate-smtp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-smtp.js","sourceRoot":"","sources":["../../../src/common/utils/validate-smtp.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"validate-smtp.js","sourceRoot":"","sources":["../../../src/common/utils/validate-smtp.ts"],"names":[],"mappings":"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"}
|