offlineimap
offlineimap copied to clipboard
Gmail and Labels: label correspondig to folder not added to header?
General informations
- system/distribution (with version): MacOS 10.15.6
- offlineimap version (
offlineimap -V): offlineimap v7.2.1, imaplib2 v2.57 (bundled), Python v2.7.18, OpenSSL 1.1.1g 21 Apr 2020 (that's what comes with MacPorts) - Python version: Python 2.7.18
- server name or domain: Gmail
- CLI options: none
Configuration file offlineimaprc
[general]
accounts = MyAcct
ui=ttyui
[Account MyAcct]
localrepository = MyAcctlocal
remoterepository = MyAcctserver
# Sync the labels
synclabels = yes
# Header where labels go (X-Keywords is the default, but mutt uses X-Label)
labelsheader = X-Label
# Ignore some Gmail labels
ignorelabels = \Sent, \Draft, \Spam, \Trash, \Important
# Update notmuch database after syncing
postsynchook = notmuch new
# This is the remote repository
[Repository MyAcctserver]
type = Gmail
# Private auth info removed
# Ignore some folders
folderfilter = lambda foldername : foldername not in [ '[Gmail]/Important', '[Gmail]/All Mail'] and foldername[:3] != "Old"
# Remap some labels. It must match with the entry in the local repository
nametrans = lambda folder: {'[Gmail]/Drafts': 'drafts',
'[Gmail]/Sent Mail': 'sent',
'[Gmail]/Starred': 'starred',
'[Gmail]/Important': 'important',
'[Gmail]/Spam': 'spam',
'[Gmail]/Trash': 'trash',
'[Gmail]/All Mail': 'archive',
}.get(folder, folder)
# This is the 'local' repository
[Repository MyAcctlocal]
type = GmailMaildir
localfolders = ~/Mail/MyAcct
# Put different IMAP folders in separate directories
sep = /
# Ignore some folders
folderfilter = lambda foldername : foldername not in [ '[Gmail]/Important', '[Gmail]/All Mail'] and foldername[:3] != "Old"
# Remap some labels. It must match with the entry in the remote repository
nametrans = lambda folder: {'drafts': '[Gmail]/Drafts',
'sent': '[Gmail]/Sent Mail',
'important':'[Gmail]/Important',
'spam': '[Gmail]/Spam',
'starred': '[Gmail]/Starred',
'trash': '[Gmail]/Trash',
'archive': '[Gmail]/All Mail',
}.get(folder, folder
Steps to reproduce the error
- Add two labels,
AandBto a message in inbox. - After syncing
- a copy (?) of the message is present in the folder
A. The X-Label header contains only the labelsBand\Inbox(to be precise it'sX-Label: B \Inbox); - another copy (?) of the message is present in the folder
B. The X-Label header contains only the labelsAand\Inbox(to be precise, itsX-Label A \Inbox); - a third copy (?) of the message is present in the inbox. The X-Label header contains only the labels
Aand\Inbox(to be precies, it'sX-Label A B);
- a copy (?) of the message is present in the folder
I would be expecting the header (of all copies?) to contain all the labels. I believe I expect this behavior because folders are labels in Gmail, and viceversa, so it just seems more natural to have all the labels in it. On the other hand, I understand that what seems to be stored are the "additional" labels: the fact that the message is in this folder implies that it has the label corresponding to the folder.
Is this expected behavior from the program or is it a bug? Perhaps it could be tunable? (I couldn't find in the code where the "folder" label may be removed).
Thanks.