| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Thunderbird, Zimbra, and possibly other IMAP clients store user
specified tags in IMAP keywords ("flags that don't start with
backslash"). GMail simply ignores these keywords (it will store them
but otherwise doesn't use them), but using a GMail-specific IMAP
extension [1] it's possible to add GMail labels to any message. After
uploading each message to the new server look for IMAP keywords and use
GMail's X-GM-LABELS extension to convert the keywords to labels.
[1] https://developers.google.com/gmail/imap_extensions#access_to_gmail_labels_x-gm-labels
In my own conversion from Zimbra to GMail there were several non-user keywords that I assume Zimbra was using internally such as $Forwarded, Forwarded (yes, both with and without the $), and $MDNSent. Following the folder exclude model, add a --excludetags option that accepts a regex of tags (IMAP keywords) to not convert to GMail labels.
Based on Gilles' recommendation in imapsync#6
| Back | FazBrowse Home | New Git URL |
Per discussion in #6, here is an implementation of converting IMAP keywords to GMail labels. I've tested it on about a year's worth of my corporate email (~3k messages), moving from Zimbra to GMail (really GSuite) which contained about 20 unique tags. That process made me add an --excludetags option to skip porting some of Zimbra's internal IMAP keywords (second commit on this branch). I also tested that Zimbra (the IMAP server I have easy access to) doesn't barf too badly if I attempt to use the X-GM-LABELS command (it simply rejects it as an invalid store command but allows the client to continue issuing other commands).
I have attempted to match the coding style of the existing code, but let me know if I missed anything really important...
Possibly useful reference material: