From 7ca7361116f408096cf921d01cbb88714616bfa9 Mon Sep 17 00:00:00 2001 From: Neil Rashbrook Date: Mon, 12 Aug 2024 21:17:46 +0100 Subject: [PATCH] Mail: Send all extra MIME headers (#171) --- app/logic/Mail/EWS/EWSAccount.ts | 6 +++--- app/logic/Mail/OWA/OWAAccount.ts | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/logic/Mail/EWS/EWSAccount.ts b/app/logic/Mail/EWS/EWSAccount.ts index fcf975e18..a005bbeae 100644 --- a/app/logic/Mail/EWS/EWSAccount.ts +++ b/app/logic/Mail/EWS/EWSAccount.ts @@ -103,8 +103,8 @@ export class EWSAccount extends MailAccount { }))), }, "item:Attachments"); } - for (let [header, value] of email.headers.entries()) { - request.addField("Message", "ExtendedProperty", { + if (email.headers.hasItems) { + request.addField("Message", "ExtendedProperty", [...email.headers.entries()].map(([header, value]) => ({ t$ExtendedFieldURI: { PropertyName: header, DistinguishedPropertySetId: "InternetHeaders", @@ -112,7 +112,7 @@ export class EWSAccount extends MailAccount { // TODO Sends header names as all-lowercase. Should preserve casing. }, t$Value: value, - }, null); + })), null); } if (email.inReplyTo) { request.addField("Message", "InReplyTo", email.inReplyTo, "item:InReplyTo"); diff --git a/app/logic/Mail/OWA/OWAAccount.ts b/app/logic/Mail/OWA/OWAAccount.ts index 7259017a8..b9d8b62b9 100644 --- a/app/logic/Mail/OWA/OWAAccount.ts +++ b/app/logic/Mail/OWA/OWAAccount.ts @@ -120,17 +120,16 @@ export class OWAAccount extends MailAccount { Content: await blobToBase64(attachment.content), }))), "item:Attachments"); } - /* TODO FIXME Send additional headers - for (let [header, value] of email.headers.entries()) { - request.addField("Message", "ExtendedProperty", { + if (email.headers.hasItems) { + request.addField("Message", "ExtendedProperty", [...email.headers.entries()].map(([header, value]) => ({ ExtendedFieldURI: { PropertyName: header, DistinguishedPropertySetId: "InternetHeaders", PropertyType: "String", }, Value: value, - }, null); - }*/ + })), null); + } if (email.inReplyTo) { request.addField("Message", "InReplyTo", email.inReplyTo, "item:InReplyTo"); }