import { SESv2Client } from "@aws-sdk/client-sesv2"; import { AwsContext } from "../aws.ts"; import { MailDeliverer, MailDeliverContext } from "../deliver.ts"; export class AwsMailDeliverContext extends MailDeliverContext { awsMessageId: string | null = null; constructor(rawMail: string) { super(rawMail); } } class AwsMailDeliverer extends MailDeliverer { private _ses; constructor(readonly aws: AwsContext) { super("aws"); this._ses = new SESv2Client({ credentials: aws.awsCredentialsProvider }); } protected override doPrepare(rawMail: string): Promise { return Promise.resolve(new AwsMailDeliverContext(rawMail)) } protected override async doDeliver(context: AwsContext): Promise { } }