Open
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
--excludetagsoption 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 theX-GM-LABELScommand (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: