Hi to Geary developers – I’m wondering exactly how Geary does “Archive” and “Trash”. Gmail’s IMAP is of course different from others. It maps Gmail labels to IMAP folders, with a monolithic mailstore as a back-end (“All Mail”).
When I’ve written IMAP code for Gmail, I used these for Archive and Trash. (For these to work, the default settings for IMAP must be set in GMail UI Settings | Forwarding and POP/IMAP | IMAP access.)
Archive (only one IMAP call needed – Gmail deletes the Inbox label from the message, so message is only found in All Mail):
STORE +FLAGS \Deleted
Trash (with this one IMAP call, Gmail copies the message to [Gmail]/Trash and removes it from the mailstore).
STORE +X-GM-LABELS \Trash
Geary handles Gmail Archive and Trash correctly, but I wonder if it uses the above IMAP calls?
Most IMAP clients don’t get this right for Gmail. For archive, they copy a message to a new archive folder that you prob. didn’t want, and then set the \Deleted flag on the Inbox message. And for Trash, they copy the msg to Trash folder and set \Deleted flag on the Inbox message. But for these methods to work requires a special setting in GMail UI Settings | Forwarding and POP/IMAP | IMAP access; even then, you don’t get native Gmail-style archiving.