@social-mail/social-mail-web-server 1.7.261 → 1.7.263
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/server/model/entities/DomainReputation.d.ts +6 -0
- package/dist/server/model/entities/DomainReputation.d.ts.map +1 -0
- package/dist/server/model/entities/DomainReputation.js +30 -0
- package/dist/server/model/entities/DomainReputation.js.map +1 -0
- package/dist/server/seed/ui/seed-ui.js +1 -1
- package/dist/server/services/EmailAddressService.d.ts +1 -0
- package/dist/server/services/EmailAddressService.d.ts.map +1 -1
- package/dist/server/services/EmailAddressService.js +42 -18
- package/dist/server/services/EmailAddressService.js.map +1 -1
- package/dist/server/services/message-events/MessagingService.d.ts +1 -0
- package/dist/server/services/message-events/MessagingService.d.ts.map +1 -1
- package/dist/server/services/message-events/MessagingService.js +1 -0
- package/dist/server/services/message-events/MessagingService.js.map +1 -1
- package/dist/server/smtp/services/ChannelService.d.ts +5 -1
- package/dist/server/smtp/services/ChannelService.d.ts.map +1 -1
- package/dist/server/smtp/services/ChannelService.js +11 -7
- package/dist/server/smtp/services/ChannelService.js.map +1 -1
- package/dist/server/smtp/services/DomainReputationService.d.ts +10 -0
- package/dist/server/smtp/services/DomainReputationService.d.ts.map +1 -0
- package/dist/server/smtp/services/DomainReputationService.js +108 -0
- package/dist/server/smtp/services/DomainReputationService.js.map +1 -0
- package/dist/server/smtp/services/MailReceiverService.d.ts +4 -2
- package/dist/server/smtp/services/MailReceiverService.d.ts.map +1 -1
- package/dist/server/smtp/services/MailReceiverService.js +31 -17
- package/dist/server/smtp/services/MailReceiverService.js.map +1 -1
- package/dist/server/workflows/daily/DailyWorkflow.d.ts +2 -1
- package/dist/server/workflows/daily/DailyWorkflow.d.ts.map +1 -1
- package/dist/server/workflows/daily/DailyWorkflow.js +6 -2
- package/dist/server/workflows/daily/DailyWorkflow.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/server/model/entities/DomainReputation.ts +15 -0
- package/src/server/seed/ui/seed-ui.ts +1 -1
- package/src/server/services/EmailAddressService.ts +10 -0
- package/src/server/services/message-events/MessagingService.ts +3 -0
- package/src/server/smtp/services/ChannelService.ts +13 -7
- package/src/server/smtp/services/DomainReputationService.ts +44 -0
- package/src/server/smtp/services/MailReceiverService.ts +35 -21
- package/src/server/workflows/daily/DailyWorkflow.ts +5 -1
|
@@ -26,6 +26,8 @@ import sleep from "../../../common/sleep.js";
|
|
|
26
26
|
import Sql from "@entity-access/entity-access/dist/sql/Sql.js";
|
|
27
27
|
import EntityAccessError from "@entity-access/entity-access/dist/common/EntityAccessError.js";
|
|
28
28
|
import TagService from "../../services/tags/TagService.js";
|
|
29
|
+
import DomainReputationService from "./DomainReputationService.js";
|
|
30
|
+
import MessagingService from "../../services/message-events/MessagingService.js";
|
|
29
31
|
const stripBrackets = (text) => {
|
|
30
32
|
if (!text) {
|
|
31
33
|
return text;
|
|
@@ -84,16 +86,9 @@ let MailReceiverService = class MailReceiverService {
|
|
|
84
86
|
throw new SmtpError("Unknown sequence of commands", SmtpStatusCodes.BadCommandSequence);
|
|
85
87
|
}
|
|
86
88
|
this.from = address;
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
.first();
|
|
91
|
-
const { failed } = reputation;
|
|
92
|
-
if (failed > 3) {
|
|
93
|
-
if (failed > (reputation.received / 10)) {
|
|
94
|
-
throw new SmtpError("Sender Blocked for 24 Hours", SmtpStatusCodes.SenderBlocked);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
89
|
+
const domain = this.fromDomain = this.from.address.split("@", 2).pop();
|
|
90
|
+
await this.domainReputation.checkReputation(domain);
|
|
91
|
+
const mailbox = await this.emailAddressService.getHostedMailboxByAddress(address.address);
|
|
97
92
|
if (mailbox && !mailbox.isExternal) {
|
|
98
93
|
if (!this.session.user) {
|
|
99
94
|
console.error(`Login required for ${address.address}`);
|
|
@@ -106,19 +101,18 @@ let MailReceiverService = class MailReceiverService {
|
|
|
106
101
|
if (!this.recipients) {
|
|
107
102
|
throw new SmtpError("Unknown sequence of commands", SmtpStatusCodes.BadCommandSequence);
|
|
108
103
|
}
|
|
109
|
-
const domainID = this.sender.domainID;
|
|
110
104
|
const mailbox = await this.db.mailboxes
|
|
111
105
|
.where(address, (p) => (x) => x.emailAddress.emailAddress === p.address)
|
|
112
106
|
.first();
|
|
113
107
|
if (mailbox == null) {
|
|
114
|
-
await this.addDomainActivity(
|
|
108
|
+
await this.addDomainActivity("rcpt-not-found");
|
|
115
109
|
// update domain reputation
|
|
116
110
|
throw new SmtpError(`Mailbox ${address.address} not found`, SmtpStatusCodes.MailboxUnavailable);
|
|
117
111
|
}
|
|
118
112
|
if (BigInt(mailbox.storage) >= BigInt(mailbox.maxStorage)) {
|
|
119
113
|
throw new SmtpError("Mailbox full", SmtpStatusCodes.InsufficientStorage);
|
|
120
114
|
}
|
|
121
|
-
await this.addDomainActivity(
|
|
115
|
+
await this.addDomainActivity("mail-received");
|
|
122
116
|
// check if email is blocked...
|
|
123
117
|
const mailboxID = mailbox.mailboxID;
|
|
124
118
|
const contactID = await this.emailAddressService.getId(address.address);
|
|
@@ -135,23 +129,35 @@ let MailReceiverService = class MailReceiverService {
|
|
|
135
129
|
}
|
|
136
130
|
if (mailbox.isChannel) {
|
|
137
131
|
const channelService = ServiceProvider.resolve(this, ChannelService);
|
|
138
|
-
await channelService.getAccess(
|
|
132
|
+
await channelService.getAccess({
|
|
133
|
+
senderAddress: address.address,
|
|
134
|
+
recipientChannel: mailbox
|
|
135
|
+
});
|
|
139
136
|
}
|
|
140
137
|
this.recipients.set(address.address, mailbox);
|
|
141
138
|
}
|
|
142
|
-
async addDomainActivity(
|
|
139
|
+
async addDomainActivity(activity) {
|
|
143
140
|
const ipAddress = this.session.remoteAddress;
|
|
141
|
+
const domainID = await this.emailAddressService.getOrCreateDomain(this.fromDomain);
|
|
144
142
|
await this.db.serverActivities.statements.insert({
|
|
145
143
|
domainID,
|
|
146
144
|
activity,
|
|
147
145
|
ipAddress
|
|
148
146
|
});
|
|
149
|
-
await this.db.domains
|
|
147
|
+
const [d] = await this.db.domains
|
|
150
148
|
.where({ domainID }, (p) => (x) => x.domainID === p.domainID)
|
|
151
|
-
.
|
|
149
|
+
.updateSelect(void 0, (p) => (x) => ({
|
|
152
150
|
received: Sql.coll.sum(x.activities.map((a) => a.activity === "mail-received" ? 1 : 0)),
|
|
153
151
|
failed: Sql.coll.sum(x.activities.map((a) => a.activity === "rcpt-not-found" ? 1 : 0)),
|
|
154
152
|
}));
|
|
153
|
+
if (activity === "rcpt-not-found") {
|
|
154
|
+
if (d?.failed > 3) {
|
|
155
|
+
if (d.failed > (d.received / 10)) {
|
|
156
|
+
// clear on reputation change
|
|
157
|
+
this.ms.reputationCleared.notify("");
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
155
161
|
}
|
|
156
162
|
async acceptData(stream) {
|
|
157
163
|
// store file locally somewhere...
|
|
@@ -276,6 +282,14 @@ __decorate([
|
|
|
276
282
|
Inject,
|
|
277
283
|
__metadata("design:type", TagService)
|
|
278
284
|
], MailReceiverService.prototype, "tagService", void 0);
|
|
285
|
+
__decorate([
|
|
286
|
+
Inject,
|
|
287
|
+
__metadata("design:type", DomainReputationService)
|
|
288
|
+
], MailReceiverService.prototype, "domainReputation", void 0);
|
|
289
|
+
__decorate([
|
|
290
|
+
Inject,
|
|
291
|
+
__metadata("design:type", MessagingService)
|
|
292
|
+
], MailReceiverService.prototype, "ms", void 0);
|
|
279
293
|
MailReceiverService = __decorate([
|
|
280
294
|
RegisterScoped
|
|
281
295
|
], MailReceiverService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailReceiverService.js","sourceRoot":"","sources":["../../../../src/server/smtp/services/MailReceiverService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+BAA+B;AAC/B,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACrG,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAEjE,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAA6B,YAAY,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,mBAAmB,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,MAAM,0BAA0B,CAAC;AAG7C,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAG/D,OAAO,iBAAiB,MAAM,+DAA+D,CAAC;AAC9F,OAAO,UAAU,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"MailReceiverService.js","sourceRoot":"","sources":["../../../../src/server/smtp/services/MailReceiverService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import Workflow from "@entity-access/entity-access/dist/workflows/Workflow.js";
|
|
2
2
|
import SocialMailContext from "../../model/SocialMailContext.js";
|
|
3
3
|
import DbLockService from "../../services/db-lock/DbLockService.js";
|
|
4
|
+
import MessagingService from "../../services/message-events/MessagingService.js";
|
|
4
5
|
export default class DailyWorkflow extends Workflow<any, any> {
|
|
5
6
|
static taskGroup: string;
|
|
6
7
|
run(): Promise<void>;
|
|
7
|
-
startSync(index: number, db?: SocialMailContext, lockService?: DbLockService): Promise<void>;
|
|
8
|
+
startSync(index: number, db?: SocialMailContext, lockService?: DbLockService, ms?: MessagingService): Promise<void>;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=DailyWorkflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DailyWorkflow.d.ts","sourceRoot":"","sources":["../../../../src/server/workflows/daily/DailyWorkflow.ts"],"names":[],"mappings":"AACA,OAAO,QAA4B,MAAM,yDAAyD,CAAC;AACnG,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAQjE,OAAO,aAAa,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"DailyWorkflow.d.ts","sourceRoot":"","sources":["../../../../src/server/workflows/daily/DailyWorkflow.ts"],"names":[],"mappings":"AACA,OAAO,QAA4B,MAAM,yDAAyD,CAAC;AACnG,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAQjE,OAAO,aAAa,MAAM,yCAAyC,CAAC;AAGpE,OAAO,gBAAgB,MAAM,mDAAmD,CAAC;AAEjF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,QAAQ,CAAC,GAAG,EAAC,GAAG,CAAC;IAExD,MAAM,CAAC,SAAS,SAAW;IAErB,GAAG;IAuBH,SAAS,CACX,KAAK,EAAE,MAAM,EACL,EAAE,CAAC,EAAE,iBAAiB,EACtB,WAAW,CAAC,EAAE,aAAa,EAC3B,EAAE,CAAC,EAAE,gBAAgB;CA2DpC"}
|
|
@@ -23,6 +23,7 @@ import IndexAppFilesWorkflow from "../search/IndexAppFilesWorkflow.js";
|
|
|
23
23
|
import DbLockService from "../../services/db-lock/DbLockService.js";
|
|
24
24
|
import PendingPostReceiveWorkflow from "../pending/PendingPostReceiveWorkflow.js";
|
|
25
25
|
import PendingReferencesWorkflow from "../pending/PendingReferencesWorkflow.js";
|
|
26
|
+
import MessagingService from "../../services/message-events/MessagingService.js";
|
|
26
27
|
class DailyWorkflow extends Workflow {
|
|
27
28
|
async run() {
|
|
28
29
|
// in case if we have reached beyond 1 day from start
|
|
@@ -40,7 +41,7 @@ class DailyWorkflow extends Workflow {
|
|
|
40
41
|
await this.delay(step);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
|
-
async startSync(index, db, lockService) {
|
|
44
|
+
async startSync(index, db, lockService, ms) {
|
|
44
45
|
// fetch all sync items...
|
|
45
46
|
db.verifyFilters = false;
|
|
46
47
|
db.raiseEvents = false;
|
|
@@ -65,6 +66,7 @@ class DailyWorkflow extends Workflow {
|
|
|
65
66
|
&& x.domainID !== null)
|
|
66
67
|
.limit(1000)
|
|
67
68
|
.delete(void 0, (p) => (x) => x.activityID !== null);
|
|
69
|
+
await ms.reputationCleared.notify("Reputation cleared");
|
|
68
70
|
// deactivate all expired sessions...
|
|
69
71
|
await db.loginSessions
|
|
70
72
|
.where(void 0, (p) => (x) => x.expiry <= (Sql.date.now()))
|
|
@@ -90,9 +92,11 @@ __decorate([
|
|
|
90
92
|
UniqueActivity,
|
|
91
93
|
__param(1, Inject),
|
|
92
94
|
__param(2, Inject),
|
|
95
|
+
__param(3, Inject),
|
|
93
96
|
__metadata("design:type", Function),
|
|
94
97
|
__metadata("design:paramtypes", [Number, SocialMailContext,
|
|
95
|
-
DbLockService
|
|
98
|
+
DbLockService,
|
|
99
|
+
MessagingService]),
|
|
96
100
|
__metadata("design:returntype", Promise)
|
|
97
101
|
], DailyWorkflow.prototype, "startSync", null);
|
|
98
102
|
//# sourceMappingURL=DailyWorkflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DailyWorkflow.js","sourceRoot":"","sources":["../../../../src/server/workflows/daily/DailyWorkflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,4CAA4C,CAAC;AAChE,OAAO,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACnG,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,wEAAwE;AACxE,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAC/D,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,aAAa,MAAM,yCAAyC,CAAC;AACpE,OAAO,0BAA0B,MAAM,0CAA0C,CAAC;AAClF,OAAO,yBAAyB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"DailyWorkflow.js","sourceRoot":"","sources":["../../../../src/server/workflows/daily/DailyWorkflow.ts"],"names":[],"mappings":"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"}
|