diff --git a/modoboa/webmail/lib/imaputils.py b/modoboa/webmail/lib/imaputils.py index 2284754ae..71b32f510 100644 --- a/modoboa/webmail/lib/imaputils.py +++ b/modoboa/webmail/lib/imaputils.py @@ -301,10 +301,11 @@ class IMAPconnector: key = "SUBJECT" else: continue - if pattern: - criterions = or_criterion(criterions, f'({key} "{pattern}")') - else: - criterions = "ALL" + + criterions = or_criterion(criterions, f'({key} "{pattern}")') + + if not pattern: + criterions = "ALL" self.criterions = [bytearray(criterions, "utf8")] def messages_count(self, **kwargs) -> int: diff --git a/modoboa/webmail/tests/test_lib_imaputils.py b/modoboa/webmail/tests/test_lib_imaputils.py index 6eab742e1..1a7a1e03f 100644 --- a/modoboa/webmail/tests/test_lib_imaputils.py +++ b/modoboa/webmail/tests/test_lib_imaputils.py @@ -16,7 +16,7 @@ class ImapUtilsTestCase(unittest.TestCase): """Test with Criterion and pattern""" self.imap_connector.criterions = [] self.imap_connector.parse_search_parameters("from_addr", "bob") - result = [bytearray('FROM "bob"', "utf8")] + result = [bytearray('(FROM "bob")', "utf8")] self.assertEqual(self.imap_connector.criterions, result) def test_criterions_one_criterion_without_pattern(self):