From 355f6158bef5aa36b08bba62dd8dd8ac6bda2a88 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 12 Feb 2024 01:26:56 +0100 Subject: [PATCH] Bugfix: #342 --- dev/View/Popup/Compose.js | 4 ++-- .../v/0.0.0/app/libraries/MailSo/Mime/Message.php | 12 +++++++++++- .../app/libraries/RainLoop/Actions/Messages.php | 6 +++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index 4025f5642..c53617985 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -1474,7 +1474,7 @@ export class ComposePopupView extends AbstractViewPopup { : await this.mailvelope.encrypt(recipients); /* Object.entries(PgpUserStore.getPublicKeyOfEmails(recipients) || {}).forEach(([k,v]) => - params.autocrypt.push({addr:k, keydata:v.replace(/-----(BEGIN|END) PGP PUBLIC KEY BLOCK-----/).trim()}) + params.autocrypt.push({addr:k, keydata:v.replace(/-----(BEGIN|END) PGP PUBLIC KEY BLOCK-----/g).trim()}) ); */ } else if (sign || encrypt) { @@ -1525,7 +1525,7 @@ export class ComposePopupView extends AbstractViewPopup { } if (encrypt) { Object.entries(PgpUserStore.getPublicKeyOfEmails(recipients) || {}).forEach(([k,v]) => - params.autocrypt.push({addr:k, keydata:v.replace(/-----(BEGIN|END) PGP PUBLIC KEY BLOCK-----/).trim()}) + params.autocrypt.push({addr:k, keydata:v.replace(/-----(BEGIN|END) PGP PUBLIC KEY BLOCK-----/g, '').trim()}) ); if ('openpgp' == encrypt) { // Doesn't encrypt attachments diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mime/Message.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mime/Message.php index 04d7fea14..48253b33d 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mime/Message.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mime/Message.php @@ -157,6 +157,12 @@ class Message extends Part return $this; } + public function SetAutocrypt(array $aValue) : self + { + $this->aHeadersValue['Autocrypt'] = $aValue; + return $this; + } + public function SetSubject(string $sSubject) : self { $this->aHeadersValue[Enumerations\Header::SUBJECT] = $sSubject; @@ -415,7 +421,11 @@ class Message extends Part } foreach ($this->aHeadersValue as $sName => $mValue) { - if (!($bWithoutBcc && \strtolower(Enumerations\Header::BCC) === \strtolower($sName))) { + if ('autocrypt' === \strtolower($sName)) { + foreach ($mValue as $key) { + $oRootPart->Headers->AddByName($sName, $key); + } + } else if (!($bWithoutBcc && \strtolower(Enumerations\Header::BCC) === \strtolower($sName))) { $oRootPart->Headers->SetByName($sName, (string) $mValue); } } diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php index e5dd07f36..501c2cfd3 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Messages.php @@ -1035,9 +1035,9 @@ trait Messages $oMessage->SetReferences($this->GetActionParam('references', '')); $aAutocrypt = $this->GetActionParam('autocrypt', []); - foreach ($aAutocrypt as $header) { - $oMessage->SetCustomHeader('Autocrypt', "addr={$header['addr']}; keydata={$header['keydata']}"); - } + $oMessage->SetAutocrypt( + \array_map(fn($header)=>"addr={$header['addr']}; keydata={$header['keydata']}", $aAutocrypt) + ); $aFoundCids = array(); $aFoundDataURL = array();