aboutsummaryrefslogtreecommitdiff
path: root/services/docker/mail-server/aws-sendmail/app.ts
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-04-30 00:20:23 +0800
committerYuqian Yang <crupest@crupest.life>2025-05-14 17:14:29 +0800
commit8930bb11fce19c773201b4f499d99c1c3c28efa6 (patch)
tree5ad13f3fc5fc7c6bd914aad39e0ffc824cc0d612 /services/docker/mail-server/aws-sendmail/app.ts
parent8ba08870fdb3bafa7b8739c4f1c57a70b8780143 (diff)
downloadcrupest-8930bb11fce19c773201b4f499d99c1c3c28efa6.tar.gz
crupest-8930bb11fce19c773201b4f499d99c1c3c28efa6.tar.bz2
crupest-8930bb11fce19c773201b4f499d99c1c3c28efa6.zip
HALF WORK!: 2025-5-14 2
Diffstat (limited to 'services/docker/mail-server/aws-sendmail/app.ts')
-rw-r--r--services/docker/mail-server/aws-sendmail/app.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/services/docker/mail-server/aws-sendmail/app.ts b/services/docker/mail-server/aws-sendmail/app.ts
new file mode 100644
index 0000000..e3554d7
--- /dev/null
+++ b/services/docker/mail-server/aws-sendmail/app.ts
@@ -0,0 +1,32 @@
+import { Hono } from "@hono/hono";
+
+import { Logger, setLogger } from "./logger.ts";
+import { Config, setConfig } from "./config.ts";
+import { DbService } from "./db.ts";
+import { MailDeliverer } from "./mail.ts";
+import { DovecotMailDeliverer } from "./dovecot.ts";
+
+export abstract class AppBase {
+ protected readonly db: DbService;
+ protected readonly localDeliverer: MailDeliverer;
+
+ constructor() {
+ setLogger(new Logger("log"));
+ setConfig(new Config());
+
+ this.db = new DbService();
+ this.localDeliverer = new DovecotMailDeliverer();
+ }
+
+ protected abstract get outboundMailDeliverer(): MailDeliverer;
+ protected setupHono(_hono: Hono): Promise<void> {
+ return Promise.resolve();
+ }
+
+ async run(): Promise<void> {
+ const hono = new Hono();
+ await this.setupHono(hono);
+
+ Deno.serve(hono.fetch);
+ }
+}