diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-06-30 14:25:02 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-06-30 14:25:02 +0800 |
commit | e18d101cae1dfcef29abd102d2908d429f4688d5 (patch) | |
tree | 49c0b1d1c237c674fe603db23d2e174acdea6979 /deno/mail-relay/aws/deliver.ts | |
parent | 66e2d76b75ed04ae8a43baefdb970f4cb89c5925 (diff) | |
download | crupest-e18d101cae1dfcef29abd102d2908d429f4688d5.tar.gz crupest-e18d101cae1dfcef29abd102d2908d429f4688d5.tar.bz2 crupest-e18d101cae1dfcef29abd102d2908d429f4688d5.zip |
mail: revert removing.
Diffstat (limited to 'deno/mail-relay/aws/deliver.ts')
-rw-r--r-- | deno/mail-relay/aws/deliver.ts | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/deno/mail-relay/aws/deliver.ts b/deno/mail-relay/aws/deliver.ts deleted file mode 100644 index 0195369..0000000 --- a/deno/mail-relay/aws/deliver.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { - SendEmailCommand, - SESv2Client, - SESv2ClientConfig, -} from "@aws-sdk/client-sesv2"; - -import { Mail, MailDeliverContext, MailDeliverer } from "../mail.ts"; - -declare module "../mail.ts" { - interface MailDeliverResult { - awsMessageId?: string; - } -} - -export class AwsMailDeliverer extends MailDeliverer { - readonly name = "aws"; - readonly #aws; - readonly #ses; - - constructor(aws: SESv2ClientConfig) { - super(true); - this.#aws = aws; - this.#ses = new SESv2Client(aws); - } - - protected override async doDeliver( - mail: Mail, - context: MailDeliverContext, - ): Promise<void> { - try { - const sendCommand = new SendEmailCommand({ - Content: { - Raw: { Data: mail.toUtf8Bytes() }, - }, - }); - - console.info(context.logTag, "Calling aws send-email api..."); - const res = await this.#ses.send(sendCommand); - if (res.MessageId == null) { - console.warn( - context.logTag, - "AWS send-email returned null message id.", - ); - } else { - context.result.awsMessageId = - `${res.MessageId}@${this.#aws.region}.amazonses.com`; - } - - context.result.smtpMessage = - `AWS Message ID: ${context.result.awsMessageId}`; - context.result.recipients.set("*", { - kind: "success", - message: `Succeeded to call aws send-email api.`, - }); - } catch (cause) { - context.result.recipients.set("*", { - kind: "failure", - message: "A JS error was thrown when calling aws send-email." + cause, - cause, - }); - } - } -} |