#307 accepted

SmartMailBox - filter issue

Reported by Marc | December 1st, 2012 @ 08:04 AM

When filtering on:

To _ does not contain _ @domain.com In-Reply-To _ does not contain _ @domain.com

Works ok unless there are more To or In-Reply-To addresses.

Then the filter doesn't seem to do it as supposed. It seems as the contains looks only at the first address and not at those that follow.


Comments and changes to this ticket

  • benny

    benny December 1st, 2012 @ 10:07 AM

    • State changed from “new” to “accepted”

    That is kind of correct. MailMate looks at all of the addresses, but if just one of them 'does not contain' then it's a match. The underlying query system supports a more intuitive alternative interpretation, but I'm not sure how to best solve this in the GUI. The following are my thoughts on the subject.

    These are the two interpretations of your query:

    • Take all messages which do not have any recipient at domain.com.
    • Take all messages which do not have at least one recipient at domain.com.

    Maybe this is a better way to put it:

    • Leave out messages with all recipients at domain.com (MailMate).
    • Leave out messages with any recipient at domain.com (your request).

    I agree that the default in the GUI should have been different, but it would be best if both interpretations were possible.

    In the query language it looks like this with the “contains” operator:

    to ~ 'domain.com'

    If there are multiple addresses then it's an implicit “or” as if an array operator was supported:

    to[0] ~ 'domain.com' or to[1] ~ 'domain.com'

    The above makes sense, but when it's a negated operator then it no longer makes intuitive sense:

    to[0] !~ 'domain.com' or to[1] !~ 'domain.com'

    In that case the intuitive behavior would be more like:

    to[0] !~ 'domain.com' and to[1] !~ 'domain.com'

    I'm actually not sure how such constructions are handled in similar languages (I should look into that), but I probably cannot change it now.

    In any case MailMate supports the latter behavior if a comparison argument is given (other arguments exist):

    to !~[x] 'domain.com'

    The x is for eXclusive which should be thought of as “match exclusively on this value”, but it's not as intuitive as I would like it to be :-)

    So, if you edit Mailboxes.plist by adding the [x] then you get the behavior you want.

    The above is the background story. The solution is to add another attribute to the comparison menu in the GUI, but it's not clear how it should be named. “Exclusive” does not really work. Whatever it's named I could make sure it is enabled by default when negating a comparison such that it would be rarely needed.

    Ideas are welcome.

    (The state of this ticket is to reflect that I want to solve this problem by providing some way to make the search you want with the GUI while still allowing the existing behavior.)

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

Mac OS X email client.

Shared Ticket Bins

People watching this ticket

Referenced by