[MlMt] rule (or some way) to delete all prior messages from same sender as selected message?

Kee Hinckley kee at hinckley.com
Wed Jun 20 14:58:54 EDT 2018


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
> mailmate at lists.freron.com
> https://lists.freron.com/listinfo/mailmate
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freron.com/pipermail/mailmate/attachments/20180620/e035a42a/attachment.html>


More information about the mailmate mailing list