From f5157ddba394e2f2cf4261809c4e785b6483518b Mon Sep 17 00:00:00 2001 From: iglocska Date: Tue, 5 Jan 2021 08:55:58 +0100 Subject: [PATCH] fix: [S/MIME] don't sign e-mails if no signing key is set - fixes e-mails not going out on instances where no signing key was provided --- app/Lib/Tools/SendEmail.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Lib/Tools/SendEmail.php b/app/Lib/Tools/SendEmail.php index 0779feae4..74d3ea85f 100644 --- a/app/Lib/Tools/SendEmail.php +++ b/app/Lib/Tools/SendEmail.php @@ -320,7 +320,7 @@ class SendEmail if (!$this->gpg) { throw new SendEmailException("GPG encryption is enabled, but GPG is not configured."); } - + try { $fingerprint = $this->importAndValidateGpgPublicKey($params['gpgkey']); } catch (Crypt_GPG_NoDataException $e) { @@ -415,7 +415,7 @@ class SendEmail if (!$this->gpg) { throw new SendEmailException("GPG signing is enabled, but GPG is not initialized. Check debug log why GPG could not be initialized."); } - + try { $fingerprint = $this->importAndValidateGpgPublicKey($user['User']['gpgkey']); } catch (Crypt_GPG_NoDataException $e) { @@ -446,7 +446,9 @@ class SendEmail } if (!$canEncryptGpg && $canEncryptSmime) { - $this->signBySmime($email); + if (!empty(Configure::read('SMIME.cert_public_sign')) && !empty(Configure::read('SMIME.key_sign'))) { + $this->signBySmime($email); + } $this->encryptBySmime($email, $user['User']['certif_public']); $encrypted = true; }