aboutsummaryrefslogtreecommitdiff
path: root/services/docker/mail-server/aws-sendmail/delivers/aws.ts
blob: 85d86ec4ce48362a5986c619b1110ee78897a00a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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<AwsMailDeliverContext> {
  private _ses;

  constructor(readonly aws: AwsContext) {
    super("aws");
    this._ses = new SESv2Client({ credentials: aws.awsCredentialsProvider });
  }

  protected override doPrepare(rawMail: string): Promise<AwsMailDeliverContext> {
    return Promise.resolve(new AwsMailDeliverContext(rawMail))
  }

  protected override async doDeliver(context: AwsContext): Promise<void> {
  }
}