diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-04-30 00:20:23 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-05-14 17:14:29 +0800 |
commit | 8930bb11fce19c773201b4f499d99c1c3c28efa6 (patch) | |
tree | 5ad13f3fc5fc7c6bd914aad39e0ffc824cc0d612 /services/docker/mail-server/aws-sendmail/app.ts | |
parent | 8ba08870fdb3bafa7b8739c4f1c57a70b8780143 (diff) | |
download | crupest-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.ts | 32 |
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); + } +} |