とあるメールシステムからGmailから移行した際にラベルの階層構造がうまく反映されなかったので調べてみました。
Gmailのラベルの構造
階層構造は「/」で区切ることで表現されています。
なので例えば、「階層1」のラベルの下位ラベルとして「階層2」を作成した場合、実際は
「階層1」
「階層1/階層2」
という2つのラベルが作られていることになります。
ちなみに「階層1」のラベルがない場合は、「階層1/階層2」という一つのラベルとして扱われます。
GoogleAppsScriptのサンプル
わざわざ書くまでもないですが。。。
function myFunction(){
GmailApp.createLabel("階層1");
GmailApp.createLabel("階層1/階層2");
}
これで階層1の下位ラベルとして階層2のラベルが作成されます。
なお、既に同名のラベルがある場合、ラベルは作成されず、特にエラーも返さず普通にスルーされます。
ちなみに、APIを通さなくても「階層1/階層2」のラベルがある状態で、GmailのUIから「階層1」のラベルを作れば、
自動的に階層2のラベルは階層1の下位ラベルになります。