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']) { 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-"'); +});