I have two keyboard macros that I use a lot for this purpose. They aren't exactly what you want, but close.

`sf` selects all messages with the same From.
`sr` selects all messages with the same Recipient.

Depending on the mailing list, one or the other works. Then, as people have mentioned, you would command-click to unselect the current one. Although usually I do this after reading the message, so I just nuke them all.

I also have `df` and `dr` commands if I want to delete them all immediately without checking to make sure it selected what I want (`dr` in particular can be dangerous).

So in ~/Library/Application Support/MailMate/Resources/KeyBindings/Kee.plist You enable it in Preferences/General under Custom Key Bindings (just put in "Kee", or whatever you call it).

Here's the file: (discard the parts you don't want).

```
{
// "r" = ( "replyAll:", "selectAll:", "decreaseQuoteLevel:", "deselectAll:", "moveToBeginningOfDocument:", "insertNewline:", "insertNewline:", "moveToBeginningOfDocument:" );
    "r"     = ( "addTag:", "HTMLReply", "replyAll:" );
    "c"     = "collapseThread:";
    "e"     = "expandThread:";
    "j"     = "nextMessage:";
    "k"     = "previousThread:";
    "n"     = "nextUnreadMessage:";
    "p"     = "previousUnreadMessage:";
"J" = ( "markAsNotJunk:", "removeTag:", "\\Seen", "moveToMailbox:",'INBOX');

    // delete commands
    "d" = {
            // Delete entire thread
            "t" = ( "selectThread:", "deleteMessage:" );
// Delete the thread in the inbox, but leave filed items alone "i" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path = 'INBOX'", "deleteMessage:" );
            // Delete thread except mail that was mine (I sent)
"m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'Sent Messages' and #source.path != 'Sent Items'", "deleteMessage:" );
            // Delete thread except the stuff in inbox or sent (other)
"o" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'INBOX' and #source.path != 'Sent Messages' and #source.path != 'Sent Items'", "deleteMessage:" );
            // Delete the subject
"s" = ( "selectWithFilter:", "subject.body = '${subject.body}'", "moveToMailbox:", "trash" );
            // Delete by from address
"f" = ( "selectWithFilter:", "from.address = '${from.address}'", "moveToMailbox:", "trash" );
            // Delete any mail to this recipient
"r" = ( "selectWithFilter:", "#recipient.address = '${#recipient.address}'", "moveToMailbox:", "trash" );
    };

// select commands (good if you aren't sure what the delete in thread action is going to do!)
    "s" = {
            // Select an entire thread
            "t"     = "selectThread:";
// Select just the items in the thread that are in my inbox, leaving filed messages alone "i" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path = 'INBOX'" );
            // Select thread except mail that was mine (I sent)
"m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'Sent Messages' and #source.path != 'Sent Items'" );
            // Select thread except the stuff in inbox or sent (other)
"o" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'INBOX' and #source.path != 'Sent Messages' and #source.path != 'Sent Items'" );
            // Select the subject
"s" = ( "selectWithFilter:", "subject.body = '${subject.body}'" );
            // Select by from address
"f" = ( "selectWithFilter:", "from.address = '${from.address}'" ); // Select any mail to this recipient (warning, I've had this crash MailMate) "r" = ( "selectWithFilter:", "#recipient.address = '${#recipient.address}'" );

//"m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.mailto !=[x] \\$SENT.source.mailto" ); // "m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and from.address !=[x] \\$SENT.from.address" );

    };

    // FROM SOMEONE "c" = ( "showThread:", "showCorrespondence" );

    // Editing commands
    // bold selection
"@b" = (selectWord:, setMark:, swapWithMark:, deleteToMark:, insertText:, "**", yank:, insertText:, " ", moveLeft:, insertText:, "**", moveRight:, deleteBackward:);
    // italicize selection
"@i" = (selectWord:, setMark:, swapWithMark:, deleteToMark:, insertText:, "_", yank:, insertText:, " ", moveLeft:, insertText:, "_", moveRight:, deleteBackward:);
    // typewriterize selection
"@t" = (selectWord:, setMark:, swapWithMark:, deleteToMark:, insertText:, "`", yank:, insertText:, " ", moveLeft:, insertText:, "`", moveRight:, deleteBackward:);

}

```

On 13 Jun 2018, at 7:34, Eric Sharakan wrote:

Like many folks, I receive periodic mails from certain senders (weekly digest emails, sale info, etc). Is there a way to set up a rule or something that, when looking at a message, I can instruct MM to delete all prior messages from the same sender in the current mailbox?

If not, please consider this a feature request. :-)

Thanks.

-Eric
_______________________________________________
mailmate mailing list
[email protected]
https://lists.freron.com/listinfo/mailmate
_______________________________________________
mailmate mailing list
[email protected]
https://lists.freron.com/listinfo/mailmate

Reply via email to