diff options
Diffstat (limited to 'services/docker/mail-server/relay/dovecot.ts')
-rw-r--r-- | services/docker/mail-server/relay/dovecot.ts | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/services/docker/mail-server/relay/dovecot.ts b/services/docker/mail-server/relay/dovecot.ts index bb96e7b..4971943 100644 --- a/services/docker/mail-server/relay/dovecot.ts +++ b/services/docker/mail-server/relay/dovecot.ts @@ -1,13 +1,13 @@ import { basename } from "@std/path"; -import { getConfigValue } from "./config.ts"; -import logger, { log } from "./logger.ts"; +import config from "./config.ts"; +import log from "./log.ts"; import { Mail, MailDeliverContext, MailDeliverer, - MailDeliverReceiptResult, - ReceiptsFromHeadersHook, + MailDeliverRecipientResult, + RecipientFromHeadersHook, } from "./mail.ts"; export class DovecotMailDeliverer extends MailDeliverer { @@ -16,7 +16,7 @@ export class DovecotMailDeliverer extends MailDeliverer { constructor() { super(); this.preHooks.push( - new ReceiptsFromHeadersHook(), + new RecipientFromHeadersHook(), ); } @@ -24,35 +24,35 @@ export class DovecotMailDeliverer extends MailDeliverer { mail: Mail, context: MailDeliverContext, ): Promise<void> { - const ldaPath = getConfigValue("ldaPath"); + const ldaPath = config.get("ldaPath"); const ldaBinName = basename(ldaPath); const utf8Stream = mail.toUtf8Bytes(); - const receipts = [...context.receipts]; - if (receipts.length === 0) { - throw new Error("No receipts found."); + const recipients = [...context.recipients]; + if (recipients.length === 0) { + throw new Error("No recipients found."); } - log(`Deliver to ${receipts.join(", ")}.`); + log.info(`Deliver to ${recipients.join(", ")}.`); - for (const receipt of receipts) { - log(`Call ${ldaBinName} for ${receipt}...`); + for (const recipient of recipients) { + log.info(`Call ${ldaBinName} for ${recipient}...`); - const result: MailDeliverReceiptResult = { + const result: MailDeliverRecipientResult = { kind: "done", message: `${ldaBinName} exited with success.`, }; try { const ldaCommand = new Deno.Command(ldaPath, { - args: ["-d", receipt], + args: ["-d", recipient], stdin: "piped", stdout: "piped", stderr: "piped", }); const ldaProcess = ldaCommand.spawn(); - using logFiles = await logger.openLogForProgram(ldaBinName); + using logFiles = await log.openLogForProgram(ldaBinName); ldaProcess.stdout.pipeTo(logFiles.stdout.writable); ldaProcess.stderr.pipeTo(logFiles.stderr.writable); @@ -74,7 +74,7 @@ export class DovecotMailDeliverer extends MailDeliverer { // https://doc.dovecot.org/main/core/man/dovecot-lda.1.html switch (status.code) { case 67: - result.message += ", receipt user not known"; + result.message += ", recipient user not known"; break; case 75: result.kind = "retry"; @@ -88,7 +88,7 @@ export class DovecotMailDeliverer extends MailDeliverer { result.message = "An error was thrown when running lda process: " + e; result.cause = e; } - context.result.set(receipt, result); + context.result.recipients.set(recipient, result); } } } |