From 04672f7416e81a879d08bdd956402039ac7ece19 Mon Sep 17 00:00:00 2001 From: Chadi Rachid Date: Thu, 19 Sep 2019 13:45:15 +0300 Subject: [PATCH] Expose signingOptions and extraCerts params --- protected/humhub/components/mail/Mailer.php | 14 +++++++++++++- protected/humhub/components/mail/Message.php | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/protected/humhub/components/mail/Mailer.php b/protected/humhub/components/mail/Mailer.php index 2ad93e3c57..e17a1db8c8 100644 --- a/protected/humhub/components/mail/Mailer.php +++ b/protected/humhub/components/mail/Mailer.php @@ -41,6 +41,17 @@ class Mailer extends \yii\swiftmailer\Mailer * @var string|null Path for the sigining certificate private key. If provided emails will be digitally signed before sending. */ public $signingPrivateKeyPath = null; + + /** + * @var string|null Path for extra sigining certificates (i.e. intermidiate certificates). + */ + public $signingExtraCertsPath = null; + + /** + * @var int Bitwise operator options for openssl_pkcs7_sign() + */ + public $signingOptions = PKCS7_DETACHED; + /** * Creates a new message instance and optionally composes its body content via view rendering. @@ -72,7 +83,8 @@ class Mailer extends \yii\swiftmailer\Mailer } if ($this->signingCertificatePath !== null && $this->signingPrivateKeyPath !== null) { - $message->setSmimeSigner($this->signingCertificatePath, $this->signingPrivateKeyPath); + $message->setSmimeSigner($this->signingCertificatePath, $this->signingPrivateKeyPath, $this->signingOptions, $this->signingExtraCertsPath); + } return $message; diff --git a/protected/humhub/components/mail/Message.php b/protected/humhub/components/mail/Message.php index 1dd803e2d4..917ae2f330 100644 --- a/protected/humhub/components/mail/Message.php +++ b/protected/humhub/components/mail/Message.php @@ -16,11 +16,11 @@ namespace humhub\components\mail; */ class Message extends \yii\swiftmailer\Message { - public function setSmimeSigner($signingCertificatePath, $signingPrivateKeyPath) + public function setSmimeSigner($signingCertificatePath, $signingPrivateKeyPath, $signingOptions = PKCS7_DETACHED, $extraCerts = null) { $signer = \Swift_Signers_SMimeSigner::newInstance(); - $signer->setSignCertificate($signingCertificatePath, $signingPrivateKeyPath); + $signer->setSignCertificate($signingCertificatePath, $signingPrivateKeyPath, $signingOptions, $extraCerts); $this->getSwiftMessage()->attachSigner($signer);