From 47b9c4bd369b96b3a88c4ec8b6aeabd33c8d1bbe Mon Sep 17 00:00:00 2001 From: kenjis Date: Thu, 8 Feb 2024 13:03:18 +0900 Subject: [PATCH 1/3] fix: cannot override Email Preferences with $overrides --- src/Helpers/email_helper.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Helpers/email_helper.php b/src/Helpers/email_helper.php index 20e9ccf47..35a28908b 100644 --- a/src/Helpers/email_helper.php +++ b/src/Helpers/email_helper.php @@ -17,6 +17,8 @@ /** * Provides convenient access to the CodeIgniter Email class. * + * @param array $overrides Email preferences to override. + * * @internal */ function emailer(array $overrides = []): Email @@ -46,7 +48,7 @@ function emailer(array $overrides = []): Email ]; if ($overrides !== []) { - $config = array_merge($overrides, $config); + $config = array_merge($config, $overrides); } /** @var Email $email */ From 23fd7224fcd235d3cd26aabb3ad89af9d06bd8c4 Mon Sep 17 00:00:00 2001 From: kenjis Date: Thu, 8 Feb 2024 13:04:42 +0900 Subject: [PATCH 2/3] fix: set `mailType` to `html` when sending email --- src/Authentication/Actions/Email2FA.php | 3 ++- src/Authentication/Actions/EmailActivator.php | 3 ++- src/Controllers/MagicLinkController.php | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Authentication/Actions/Email2FA.php b/src/Authentication/Actions/Email2FA.php index 2d9cf2bd3..89c0532f8 100644 --- a/src/Authentication/Actions/Email2FA.php +++ b/src/Authentication/Actions/Email2FA.php @@ -88,7 +88,8 @@ public function handle(IncomingRequest $request) // Send the user an email with the code helper('email'); - $email = emailer()->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); + $email = emailer(['mailType' => 'html']) + ->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); $email->setTo($user->email); $email->setSubject(lang('Auth.email2FASubject')); $email->setMessage($this->view(setting('Auth.views')['action_email_2fa_email'], ['code' => $identity->secret, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date])); diff --git a/src/Authentication/Actions/EmailActivator.php b/src/Authentication/Actions/EmailActivator.php index f91316cc3..e078e3e2c 100644 --- a/src/Authentication/Actions/EmailActivator.php +++ b/src/Authentication/Actions/EmailActivator.php @@ -65,7 +65,8 @@ public function show(): string // Send the email helper('email'); - $email = emailer()->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); + $email = emailer(['mailType' => 'html']) + ->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); $email->setTo($userEmail); $email->setSubject(lang('Auth.emailActivateSubject')); $email->setMessage($this->view(setting('Auth.views')['action_email_activate_email'], ['code' => $code, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date])); diff --git a/src/Controllers/MagicLinkController.php b/src/Controllers/MagicLinkController.php index 65034ec7e..02222f87a 100644 --- a/src/Controllers/MagicLinkController.php +++ b/src/Controllers/MagicLinkController.php @@ -121,7 +121,8 @@ public function loginAction() // Send the user an email with the code helper('email'); - $email = emailer()->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); + $email = emailer(['mailType' => 'html']) + ->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); $email->setTo($user->email); $email->setSubject(lang('Auth.magicLinkSubject')); $email->setMessage($this->view(setting('Auth.views')['magic-link-email'], ['token' => $token, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date])); From 18c9220ff13e5ad795549c746020e996bfc5c749 Mon Sep 17 00:00:00 2001 From: kenjis Date: Thu, 8 Feb 2024 13:05:37 +0900 Subject: [PATCH 3/3] fix: remove DEBUG-VIEW output in mail body --- src/Authentication/Actions/Email2FA.php | 6 +++++- src/Authentication/Actions/EmailActivator.php | 6 +++++- src/Controllers/MagicLinkController.php | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Authentication/Actions/Email2FA.php b/src/Authentication/Actions/Email2FA.php index 89c0532f8..4b38318a8 100644 --- a/src/Authentication/Actions/Email2FA.php +++ b/src/Authentication/Actions/Email2FA.php @@ -92,7 +92,11 @@ public function handle(IncomingRequest $request) ->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); $email->setTo($user->email); $email->setSubject(lang('Auth.email2FASubject')); - $email->setMessage($this->view(setting('Auth.views')['action_email_2fa_email'], ['code' => $identity->secret, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date])); + $email->setMessage($this->view( + setting('Auth.views')['action_email_2fa_email'], + ['code' => $identity->secret, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date], + ['debug' => false] + )); if ($email->send(false) === false) { throw new RuntimeException('Cannot send email for user: ' . $user->email . "\n" . $email->printDebugger(['headers'])); diff --git a/src/Authentication/Actions/EmailActivator.php b/src/Authentication/Actions/EmailActivator.php index e078e3e2c..2dd14d5e6 100644 --- a/src/Authentication/Actions/EmailActivator.php +++ b/src/Authentication/Actions/EmailActivator.php @@ -69,7 +69,11 @@ public function show(): string ->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); $email->setTo($userEmail); $email->setSubject(lang('Auth.emailActivateSubject')); - $email->setMessage($this->view(setting('Auth.views')['action_email_activate_email'], ['code' => $code, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date])); + $email->setMessage($this->view( + setting('Auth.views')['action_email_activate_email'], + ['code' => $code, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date], + ['debug' => false] + )); if ($email->send(false) === false) { throw new RuntimeException('Cannot send email for user: ' . $user->email . "\n" . $email->printDebugger(['headers'])); diff --git a/src/Controllers/MagicLinkController.php b/src/Controllers/MagicLinkController.php index 02222f87a..4b0d48344 100644 --- a/src/Controllers/MagicLinkController.php +++ b/src/Controllers/MagicLinkController.php @@ -125,7 +125,11 @@ public function loginAction() ->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? ''); $email->setTo($user->email); $email->setSubject(lang('Auth.magicLinkSubject')); - $email->setMessage($this->view(setting('Auth.views')['magic-link-email'], ['token' => $token, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date])); + $email->setMessage($this->view( + setting('Auth.views')['magic-link-email'], + ['token' => $token, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date], + ['debug' => false] + )); if ($email->send(false) === false) { log_message('error', $email->printDebugger(['headers']));