From a58326c5cbe9a73a6b204dac4b9f077d8cf886f4 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Wed, 30 Apr 2025 00:20:23 +0800 Subject: HALF WORK!: 2025-4-30 2 --- .../docker/mail-server/aws-sendmail/deliver.ts | 61 ---------------------- 1 file changed, 61 deletions(-) delete mode 100644 services/docker/mail-server/aws-sendmail/deliver.ts (limited to 'services/docker/mail-server/aws-sendmail/deliver.ts') diff --git a/services/docker/mail-server/aws-sendmail/deliver.ts b/services/docker/mail-server/aws-sendmail/deliver.ts deleted file mode 100644 index e0c6e1c..0000000 --- a/services/docker/mail-server/aws-sendmail/deliver.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Mail } from "./mail.ts"; - -class MailDeliverError extends Error { - constructor( - message: string, - options: ErrorOptions, - public readonly mail: Mail, - ) { - super(message, options); - } -} - -type MailDeliverHook = (mail: Mail) => Promise; - -export abstract class MailDeliverer { - preHooks: MailDeliverHook[] = []; - postHooks: MailDeliverHook[] = []; - - constructor(public readonly destination: string) {} - - protected doPrepare(_mail: Mail): Promise { - return Promise.resolve(); - } - protected abstract doDeliver(mail: Mail): Promise; - protected doFinalize(_mail: Mail): Promise { - return Promise.resolve(); - } - - async deliverRaw(raw: string): Promise { - const mail = new Mail(raw); - await this.deliver(mail); - } - - async deliver(mail: Mail): Promise { - this.doPrepare(mail); - - for (const hook of this.preHooks) { - await hook(mail); - } - - await this.doDeliver(mail); - - for (const hook of this.postHooks) { - await hook(mail); - } - - await this.doFinalize(mail); - } - - protected throwError( - reason: string, - mail: Mail, - cause?: unknown, - ): never { - throw new MailDeliverError( - `Failed to deliver mail to ${this.destination}: ${reason}`, - { cause }, - mail, - ); - } -} -- cgit v1.2.3