[MlMt] moveToJunk?

Benny Kjær Nielsen mailinglist at freron.com
Thu Jan 21 10:56:34 EST 2016

On 19 Jan 2016, at 11:15, Patrik Fältström wrote:

> The moveToJunk is described like this:
> moveToJunk:	-	Shorthand for ( 'moveToMailbox:', 'junk' )
> It seems this is not true, because if the mail is in "junk" mailbox 
> already, it seems to be action "Move out of Junk".

Yes, internally it's really used as a toggle. I've changed this now such 
that I use `toogleJunkMailbox:` internally and `moveToMailbox:` only 
moves to Junk.

> Can this is clarified, specifically what interaction there is with 
> SpamSieve?

First, when I was about to write the following I realized that there was 
a bug in MailMate since I didn't get the expected results when trying 
what I wrote. Turns out that when I recently implemented support for 
`UID MOVE` (an optional IMAP feature) as an alternative to `UID 
COPY/EXPUNGE` then I also broke the handling of certain types of flag 
changes. This can affect moving emails from/to the Junk mailbox. I 
recommend updating to the latest test version to avoid this bug.

Ok, I'll try to make a complete description. It's pretty simple:

* Moving an email to Junk automatically marks it as `$Junk` (IMAP 
* Moving an email out of Junk automatically marks it as `$NotJunk` (IMAP 
keyword) except if the destination is another junk folder or the trash 
* Marking an email as `$Junk` automatically unmarks it as (`$NotJunk, 
NotJunk, $NonJunk, NonJunk`). It also tells SpamSieve that it's a bad 
* Marking an email as `$NotJunk` automatically unmarks it as (`$Junk, 
Junk`). It also tells SpamSieve that it's a good message.

The last two items are also what happens when using the “Message ▸ 
Junk State” menu items.

The extra IMAP keyword-variants are because some email clients use 
different keywords and I think those should be cleared as well (MailMate 
never sets them).

My implementations is based on 
which I don't think ever became an official standard, but for me it's 
the unofficial standard.

> Or rather, I would like to know in more detail what the following 
> functions do:
> moveToJunk:

As described above.

> markAsJunk:

Sets the `$Junk` keyword as described above (including clearing other 

> markAsNotJunk:

Sets the `$NotJunk` keyword as described above (including clearing other 

> In the manual there is (for example) no text about interaction with 
> SpamSieve although I understand that is going on "under the hood". And 
> IF multiple things happens, what do "undo:" and "redo:" do? All of the 
> actions or only the last in the list?

All of the actions I believe except the cleaning of alternative IMAP 
keywords. (But due to the bug mentioned this would often not work 

I'll note that I should add something like the above to the manual.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freron.com/pipermail/mailmate/attachments/20160121/0155cd39/attachment.html>

More information about the mailmate mailing list