From 8930bb11fce19c773201b4f499d99c1c3c28efa6 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Wed, 30 Apr 2025 00:20:23 +0800 Subject: HALF WORK!: 2025-5-14 2 --- services/docker/mail-server/aws-sendmail/app.ts | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 services/docker/mail-server/aws-sendmail/app.ts (limited to 'services/docker/mail-server/aws-sendmail/app.ts') 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 { + return Promise.resolve(); + } + + async run(): Promise { + const hono = new Hono(); + await this.setupHono(hono); + + Deno.serve(hono.fetch); + } +} -- cgit v1.2.3