aboutsummaryrefslogtreecommitdiff
path: root/services/docker/mail-server/aws-sendmail/traffic.ts
blob: f31e9ae7db072efc7931d36c033ba8504b688529 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { MailDeliverer } from "./mail.ts";
import { AwsContext } from "./aws.ts";
import { DbService } from "./db.ts";
import { DovecotMailDeliverer } from "./delivers/dovecot.ts";
import { AwsMailDeliverer } from "./delivers/aws.ts";

export abstract class MailTrafficHandler {
  constructor(
    public readonly receiver: MailDeliverer,
    public readonly sender: MailDeliverer,
  ) {}
}

export class AwsRelayTrafficHandler extends MailTrafficHandler {
  constructor(
    private readonly db: DbService,
    private readonly aws: AwsContext,
  ) {
    super(new DovecotMailDeliverer(), new AwsMailDeliverer(aws));
  }
}