<div class="markdown">
<p dir="auto">On 22 Jan 2016, at 17:21, Jody Foo wrote:</p>

<blockquote>
<p dir="auto"><strong>Background</strong>: I recently tidied up my tag set and their location and basically did what I am asking in question 4. I had some temporary glitches (semi duplicate folders in MailMate, e.g. both folders <code>labelmappedtotag</code> and a new folder <code>_labelmappedtotag</code>. I don't remember the exact details, but this went away. Possibly after a MailMate crash..</p>
</blockquote>

<p dir="auto">Doesn't sound very robust :-/</p>

<p dir="auto">I'm sorry if I'm a bit vague in the following. There are all kinds of issues involved when handling tags/keywords/labels/mailboxes and I might have forgotten some details.</p>

<blockquote>
<p dir="auto">I have three gmail accounts set up in MailMate. For all of these I have set up a gmail label[^label] called '<code>#</code>' under which all labels I am going to use as tags in MailMate should be stored. For example, the tag '#<code>purchase</code>' might have the following mapping in the MailMate preferences: '<code>#purchase</code> = '<code>#purchase</code> = '<code>#/purchase</code>'. I created all the labels in gmail first, some with messages.</p>

<p dir="auto">I also discovered that if a <em>label structure defined in MailMate</em> <em>does not exist in gmail</em>, MailMate will <em>create</em> the label structure in gmail and then MailMate will add the newly created label to the message (or if its the Gmail API that does this?)</p>
</blockquote>

<p dir="auto">If you assign a tag mapped to a Gmail label to an email then it'll trigger the creation of the label in Gmail.</p>

<blockquote>
<p dir="auto">Now to my questions...</p>

<ol>
<li value=1>Am I correct that the above is the same thing as specifying a label path without the path existing in gmail? This would mean that I <em>do not</em> have to create the label in (at least one of) the gmail accounts I have configured in MailMate before adding it as a Tag in the MailMate Preferences?</li>
</ol>
</blockquote>

<p dir="auto">I believe that is correct.</p>

<blockquote>
<ol>
<li value=2>If I change the mapping of an existing tag in MailMate, what happens on the gmail side?

<ol>
<li value=1>messages get both new and old labels in gmail (<em>MailMate using IMAP flags</em> to <em>add</em> gmail labels or</li>
<li value=2>the existing gmail label is renamed or</li>
<li value=3>only future tag assignments are affected and the old tagged messages are no longer considered to be tagged with the previous gmail label is again shown as a mailbox in Mailmate, or</li>
<li value=4>something completely different?</li>
</ol></li>
</ol>
</blockquote>

<p dir="auto">I'm pretty sure it's number 3.</p>

<blockquote>
<ol>
<li value=3>With regard to the previous question, what steps should I perform to

<ol>
<li value=1>Change the mapping of a previously used tag to a new one? E.g. the tag "#todo" has been mapped to messages with the gmail label "todo" and now I want to use the label !todo in gmail?</li>
</ol></li>
</ol>
</blockquote>

<p dir="auto">In order to remap existing messages then you have to create a new tag to apply the new label. Then untag with the old label. Delete the old tag. Rename the display name of the new tag.</p>

<blockquote>
<pre><code>2. Change the IMAP flag used for a tag? E.g. if the flag `todo` has been used but now I want to use the flag `#todo` and therefore replace all occurrences of the flag `todo` with `#todo`?
</code></pre>
</blockquote>

<p dir="auto">Ah, now I can see my previous answer did not take the IMAP keyword into consideration. It might be tricky to change an IMAP flag (keyword) without also changing the Gmail label. I cannot give you a clear answer on that one.</p>

<blockquote>
<pre><code>3. Change the displayed string used by MailMate for a tag
</code></pre>
</blockquote>

<p dir="auto">This should always be safe since it really is just a display name. It doesn't affect anything on the server.</p>

<blockquote>
<ol>
<li value=4>Finally, what would happen if I did two or more of the above operations? E.g. if I changed the display string to <code>TODO</code>, the flag used to <code>#todo</code> and the gmail mapping to <code>tags/todo</code>? Is it <em>always</em> "sort of" safe (I did this and no data was lost but there were some glitches)?</li>
</ol>
</blockquote>

<p dir="auto">I think the safe approach is to create a new tag and then apply that to existing messages with the old tag. Then get rid of the old tag.</p>

<blockquote>
<p dir="auto">I'll say <em>label</em> for gmail labels, tag for MailMate's implementation, and folder for IMAP-folders or MailMate folders (should that be Mailboxes technically?)</p>
</blockquote>

<p dir="auto">Well, I have learned that “mailbox” is often mis-interpreted as being an account. I think this is because with POP3 there is no difference between account and mailbox. In other words, even though MailMate uses the word “mailbox” then it's often safer to use the word “folder”. To me there is no difference between mailbox and folder (in the context of an email account).</p>

<p dir="auto">As a general comment: It may seem that MailMate should be better at automatically re-labeling/tagging emails when making changes, but it's not straightforward when and how to do it. (I think, at least, that MailMate should ask before doing anything.)</p>

<p dir="auto">MailMate does a few things automatically, e.g., if something is labelled without the corresponding IMAP keyword or vice versa then MailMate tries to “clean it up” by adding the missing keyword or label. It's not unlikely that this was involved in the observed glitches/issues.</p>

<p dir="auto">Based on crash reports I've observed an issue with the handling of Gmail labels. If you are able to reproduce such a crash then please let me know.</p>

<p dir="auto">-- <br>
Benny</p>
</div>