Skip to content

Commit 57e80cc

Browse files
Move encodeRelated into client
1 parent 7fa7ce6 commit 57e80cc

File tree

2 files changed

+24
-37
lines changed

2 files changed

+24
-37
lines changed

client/basic/client.ts

+24-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type { ResolvedSendConfig } from "../../config/mail/mod.ts";
22
import { ResolvedClientOptions } from "../../config/client.ts";
3-
import { encodeRelated } from "./encode/related.ts";
43
import { SMTPConnection } from "./connection.ts";
54
import { QUE } from "./QUE.ts";
65

@@ -247,7 +246,7 @@ export class SMTPClient {
247246
for (let i = 0; i < config.mimeContent.length; i++) {
248247
writeCMD(`--${messageBoundary}`);
249248
if (config.mimeContent[i].relatedAttachments) {
250-
encodeRelated(writeCMD, config.mimeContent[i]);
249+
this.encodeRelated(config.mimeContent[i]);
251250
} else {
252251
this.encodeContent(config.mimeContent[i]);
253252
}
@@ -282,6 +281,29 @@ export class SMTPClient {
282281
}
283282
}
284283

284+
encodeRelated(content: Content) {
285+
const boundaryAddRel = this.calcBoundary(
286+
content.content + "\n" +
287+
content.relatedAttachments.map((v) => v.content).join("\n"),
288+
new RegExp("--related([0-9]+)", "g"),
289+
);
290+
291+
const relatedBoundary = `related${boundaryAddRel}`;
292+
this.#connection.writeCmd(
293+
`Content-Type: multipart/related; boundary=${relatedBoundary}\r\n; type=${content.mimeType}`,
294+
);
295+
296+
this.#connection.writeCmd(`--${relatedBoundary}`);
297+
this.encodeContent(content);
298+
299+
for (let i = 0; i < content.relatedAttachments.length; i++) {
300+
this.#connection.writeCmd(`--${relatedBoundary}`);
301+
this.encodeAttachment(content.relatedAttachments[i]);
302+
}
303+
304+
this.#connection.writeCmd(`--${relatedBoundary}--\r\n`);
305+
}
306+
285307
async #prepareConnection() {
286308
this.#connection.assertCode(
287309
await this.#connection.readCmd(),

client/basic/encode/related.ts

-35
This file was deleted.

0 commit comments

Comments
 (0)