From 686bf02f806a918c64bbc7972c65856b63b3c99b Mon Sep 17 00:00:00 2001 From: Steve Bauman Date: Tue, 20 May 2025 10:57:41 -0400 Subject: [PATCH 1/2] Convert utf-8 to utf-7 values --- src/Connection/ImapQueryBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Connection/ImapQueryBuilder.php b/src/Connection/ImapQueryBuilder.php index facbea6..0054655 100644 --- a/src/Connection/ImapQueryBuilder.php +++ b/src/Connection/ImapQueryBuilder.php @@ -440,7 +440,7 @@ protected function compileBasic(array $where): string if ($where['value'] instanceof RawQueryValue) { $part .= ' '.$where['value']->value; } elseif ($where['value']) { - $part .= ' "'.$where['value'].'"'; + $part .= ' "'.Str::toImapUtf7($where['value']).'"'; } if ($where['not']) { From 01702e2b15304a2e83ffd5f252c537a4e14bf250 Mon Sep 17 00:00:00 2001 From: Steve Bauman Date: Tue, 20 May 2025 10:57:46 -0400 Subject: [PATCH 2/2] Add test --- tests/Unit/Connection/ImapQueryBuilderTest.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/Unit/Connection/ImapQueryBuilderTest.php b/tests/Unit/Connection/ImapQueryBuilderTest.php index 8035f30..cd2760e 100644 --- a/tests/Unit/Connection/ImapQueryBuilderTest.php +++ b/tests/Unit/Connection/ImapQueryBuilderTest.php @@ -220,3 +220,11 @@ function (ImapQueryBuilder $q) { expect($builder->toImap())->toBe('FOO bar'); }); + +test('converts values from utf-8 to utf-7', function () { + $builder = new ImapQueryBuilder; + + $builder->where('foo', 'Joué'); + + expect($builder->toImap())->toBe('FOO "Jou&AOk-"'); +});