Search code examples
mailcore2

MailCore2 Search Expression with more than two parameters?


How can I search mailcore2 with more than two expressions?

My example below includes exprSinceLastTime as well as exprFrom and exprSubject. But, searchAdd only has room for two parameters.

How can I add additional search expressions such as exprSinceLastTime?

 NSTimeInterval oneHour = 3600;
 NSDate *now = [NSDate dateWithTimeIntervalSinceNow:oneHour];
 MCOIMAPSearchExpression * exprSinceLastTime = [MCOIMAPSearchExpression searchSinceReceivedDate:now];


MCOIMAPSearchExpression * exprFrom = [MCOIMAPSearchExpression searchFrom: @"apple"];
MCOIMAPSearchExpression * exprSubject = [MCOIMAPSearchExpression searchSubject: @"cloudkit"];
MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchAnd: exprFrom other: exprSubject];

MCOIMAPSearchOperation* searchOperation = [session searchExpressionOperationWithFolder: folder expression: expr];

Solution

  • I post the answer below. It was very simple. I had to sleep on the question to think of the obvious answer :-)

     NSTimeInterval oneHour = 3600; // magic number! 60 seconds
     NSDate *now = [NSDate dateWithTimeIntervalSinceNow:oneHour];
     MCOIMAPSearchExpression * exprSinceLastTime = [MCOIMAPSearchExpression searchSinceReceivedDate:now];
    
    
    MCOIMAPSearchExpression* exprFrom = [MCOIMAPSearchExpression searchFrom: @"youtube"];
    MCOIMAPSearchExpression* exprSubject = [MCOIMAPSearchExpression searchSubject: @"video"];
    MCOIMAPSearchExpression* expr = [MCOIMAPSearchExpression searchAnd: exprFrom other: exprSubject];
    MCOIMAPSearchExpression* expr2 = [MCOIMAPSearchExpression searchAnd: exprSinceLastTime other: expr];
    
    MCOIMAPSearchOperation* searchOperation = [session searchExpressionOperationWithFolder: folder expression: expr2];