aboutsummaryrefslogtreecommitdiff
path: root/deno/mail-relay/aws/deliver.ts
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-06-17 19:04:16 +0800
committerYuqian Yang <crupest@crupest.life>2025-06-18 16:24:32 +0800
commit9abee12c8429141c80cf4ab9e428d3e361fc9bb3 (patch)
tree0551ae2b33929b10b2d293232c5490abf6f77a5f /deno/mail-relay/aws/deliver.ts
parent0824de3bae3550674a9ea029b03c5cb8a35cd8e1 (diff)
downloadcrupest-9abee12c8429141c80cf4ab9e428d3e361fc9bb3.tar.gz
crupest-9abee12c8429141c80cf4ab9e428d3e361fc9bb3.tar.bz2
crupest-9abee12c8429141c80cf4ab9e428d3e361fc9bb3.zip
mail: simplify mail parsing, improve logging.mail
Diffstat (limited to 'deno/mail-relay/aws/deliver.ts')
-rw-r--r--deno/mail-relay/aws/deliver.ts25
1 files changed, 14 insertions, 11 deletions
diff --git a/deno/mail-relay/aws/deliver.ts b/deno/mail-relay/aws/deliver.ts
index ae010a7..0195369 100644
--- a/deno/mail-relay/aws/deliver.ts
+++ b/deno/mail-relay/aws/deliver.ts
@@ -4,7 +4,7 @@ import {
SESv2ClientConfig,
} from "@aws-sdk/client-sesv2";
-import { Mail, MailDeliverContext, SyncMailDeliverer } from "../mail.ts";
+import { Mail, MailDeliverContext, MailDeliverer } from "../mail.ts";
declare module "../mail.ts" {
interface MailDeliverResult {
@@ -12,13 +12,13 @@ declare module "../mail.ts" {
}
}
-export class AwsMailDeliverer extends SyncMailDeliverer {
+export class AwsMailDeliverer extends MailDeliverer {
readonly name = "aws";
readonly #aws;
readonly #ses;
constructor(aws: SESv2ClientConfig) {
- super();
+ super(true);
this.#aws = aws;
this.#ses = new SESv2Client(aws);
}
@@ -27,8 +27,6 @@ export class AwsMailDeliverer extends SyncMailDeliverer {
mail: Mail,
context: MailDeliverContext,
): Promise<void> {
- console.info("Begin to call aws send-email api...");
-
try {
const sendCommand = new SendEmailCommand({
Content: {
@@ -36,23 +34,28 @@ export class AwsMailDeliverer extends SyncMailDeliverer {
},
});
+ console.info(context.logTag, "Calling aws send-email api...");
const res = await this.#ses.send(sendCommand);
if (res.MessageId == null) {
- console.warn("Aws send-email returns no message id.");
+ 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.smtpMessage =
+ `AWS Message ID: ${context.result.awsMessageId}`;
context.result.recipients.set("*", {
- kind: "done",
- message: `Successfully called aws send-email.`,
+ kind: "success",
+ message: `Succeeded to call aws send-email api.`,
});
} catch (cause) {
context.result.recipients.set("*", {
- kind: "fail",
- message: "An error was thrown when calling aws send-email." + cause,
+ kind: "failure",
+ message: "A JS error was thrown when calling aws send-email." + cause,
cause,
});
}