diff --git a/lib/jmap/client.ts b/lib/jmap/client.ts index 92a082dc..ecf55261 100644 --- a/lib/jmap/client.ts +++ b/lib/jmap/client.ts @@ -870,9 +870,30 @@ export class JMAPClient { async searchEmails(query: string, mailboxId?: string, accountId?: string, limit: number = 50, position: number = 0): Promise<{ emails: Email[], hasMore: boolean, total: number }> { try { const targetAccountId = accountId || this.accountId; - const filter: Record = { text: query }; + + // Standard search: OR across all fields (from, to, subject, body) + // so the search bar finds matches in name, email address, subject, and body + const orFilter: Record = { + operator: "OR", + conditions: [ + { from: query }, + { to: query }, + { subject: query }, + { body: query }, + ], + }; + + let filter: Record; if (mailboxId) { - filter.inMailbox = mailboxId; + filter = { + operator: "AND", + conditions: [ + { inMailbox: mailboxId }, + orFilter, + ], + }; + } else { + filter = orFilter; } const response = await this.request([