cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rgfincher
New member
Status: New idea

Apple computers and devices extend the use of IMAP flags (normally just set or unset) to support 7 different colours of flags, using a proprietary modification of IMAP and binary 000 -> 111 settings.  This implementation is backwards compatible with non-Apple devices in that setting any colour of apple flag will just show as flagged on a non-apple device, and setting the single flag colour on a non-Apple device will just set a red colour flag on Apple.  

I think it would be relatively simple to support this standard.  Microsoft Exchange/365 also has multi-coloured flags using its own proprietary standard which I expect you already support. 

3 Comments
Status changed to: New idea
Jon
Community Manager
Community Manager

Thanks for submitting an idea to the Mozilla Connect community! Your idea is now open to votes (aka kudos) and comments.

rgfincher
New member

Screenshot 2025-03-27 at 13.55.51.png

โ€ƒ

This is how I use Apple multi-coloured flags in my Apple Mail.  The same coloured flats persist / sync across my other Apple computers, and IOS/iPadOS devices.  Would be great for Thunderbird Android to also pick these up.

rgfincher
New member
 
 
Binary 000 - remove tag
Binary 001 - set tag (default colour)
Binary 010 - RED FLAG
Binary 011 - ORANGE FLAG
Binary 100 - YELLOW FLAG
Binary 101 - GREEN FLAG
Binary 110 - BLUE FLAG
Binary 111 - PURPLE FLAG
 
 
0 = ( "removeTag:", "\\Flagged", "removeTag:", "$MailFlagBit2", "removeTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit0" );
1 = (    "setTag:", "\\Flagged", "removeTag:", "$MailFlagBit2", "removeTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit0" );
RED    2 = (    "setTag:", "\\Flagged", "removeTag:", "$MailFlagBit2", "removeTag:", "$MailFlagBit1",    "setTag:", "$MailFlagBit0" );
ORANGE 3 = (    "setTag:", "\\Flagged", "removeTag:", "$MailFlagBit2",    "setTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit0" );
YELLOW 4 = (    "setTag:", "\\Flagged", "removeTag:", "$MailFlagBit2",    "setTag:", "$MailFlagBit1",    "setTag:", "$MailFlagBit0" );
GREEN  5 = (    "setTag:", "\\Flagged",    "setTag:", "$MailFlagBit2", "removeTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit0" );
BLUE 6 = (    "setTag:", "\\Flagged",    "setTag:", "$MailFlagBit2", "removeTag:", "$MailFlagBit1",    "setTag:", "$MailFlagBit0" );
PURPLE 7 = (    "setTag:", "\\Flagged",    "setTag:", "$MailFlagBit2",    "setTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit0" );
GREY ????
 
Here are the default key bindings which also shows you how the various 
flags are generated:
 
"F" = {
"0" = ( "removeTag:", "\\Flagged", "removeTag:", "$MailFlagBit0", "removeTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit2" );
 
"1" = (    "setTag:", "\\Flagged", "removeTag:", "$MailFlagBit0", "removeTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit2" );
 
"2" = (    "setTag:", "\\Flagged",    "setTag:", "$MailFlagBit0", "removeTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit2" );
 
"3" = (    "setTag:", "\\Flagged", "removeTag:", "$MailFlagBit0",    "setTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit2" );
 
"4" = (    "setTag:", "\\Flagged",    "setTag:", "$MailFlagBit0",    "setTag:", "$MailFlagBit1", "removeTag:", "$MailFlagBit2" );
 
"5" = (    "setTag:", "\\Flagged", "removeTag:", "$MailFlagBit0", "removeTag:", "$MailFlagBit1",    "setTag:", "$MailFlagBit2" );
 
"6" = (    "setTag:", "\\Flagged",    "setTag:", "$MailFlagBit0", "removeTag:", "$MailFlagBit1",    "setTag:", "$MailFlagBit2" );
 
"7" = (    "setTag:", "\\Flagged", "removeTag:", "$MailFlagBit0",    "setTag:", "$MailFlagBit1",    "setTag:", "$MailFlagBit2" );
};
 
Colors are (2-7) red, orange, yellow, green, blue, purple, gray. In 
otherwords, number 4 above is what you need to do to generate a yellow 
flag.Here are the default key bindings which also shows you how the various 
flags are generated: