Gmailアカウントに接続し、電子メールアドレスにある「+」タグに基づいて電子メールをソートするimaplibを使用するpythonスクリプトがあります。例: myaccount+root.foo.bar@gmail.com に送信されたメールは root\foo\bar に移動されます。
私のロジックは次のようになります: タグを抽出する -> フォルダーを作成しようとする -> メッセージをフォルダーにコピーします。
場合によっては、同じタグで大文字と小文字が異なるメールが届くことがあります。たとえば、myaccount+root.FOO.BAR@gmail.com を入力すると、次の出力が表示されます。
#Attempting to creating folder 'root/FOO/BAR'
('NO', ['[ALREADYEXISTS] Folder name conflicts with existing folder name. (Failure)'])
#Copying message to folder 'root/FOO/BAR'
('NO', ['[TRYCREATE] No folder root/FOO/BAR (Failure)'])
したがって、同じ名前のフォルダーが既に存在するため (大文字と小文字が異なるだけで)、フォルダーの作成に失敗しますが、明示的なフォルダーが存在しないため、コピーは失敗します。
問題なくメッセージを移動できるように、既存のフォルダーの正しい大文字と小文字を区別できる巧妙な方法はありますか?
注: これは、すべてのタグを小文字に強制するほど簡単ではありません。ユーザーは、電子メール クライアントを使用してアカウントに接続し、時折、その時点で意味のある大文字と小文字を使用してフォルダーを手動で作成します。