[ 新規に投稿する ]

.を含むフォルダの作成No.13947
qh さん 25/12/02 10:21 [ コメントを投稿する ]
  Windows11 25H2にて7.40 64bit版を使用しています。

カゴヤのメールサーバーにIMAP接続しているのですが、
ドットを含むフォルダを作成するとおかしな挙動をします。

以下に再現手順を記載しますのでご確認いただけないでしょうか。
必要な情報などありましたらご教示ください。

秀丸メールより「folder.test」を作成します。
01.フォルダツリーにfolder.test が作成されます

02.以下のメッセージがポップアップが表示されます。
フォルダの作成/削除/名前変更について、IMAPサーバー上にも反映します。(キャンセルすると受信のタイミングで元に戻ってしまう可能性が高いです。)

03.ステータスバーに以下のメッセージが表示されます。
IMAPサーバー上のフォルダ操作(作成)に成功しました

04.秀丸メールの送受信が完了するとフォルダツリーは以下のようになります。
├ folder.test
└ folder
     └ test ←以降「folder\test」と表記します

05.ここでアカウント毎の設定 > メールサーバー > POP/IMAP > IMAP関連 > フォルダ一覧の取得し直し を実行し一覧を確認すると一覧には「folder.test」のみが存在し「folder\test」は存在を確認できません。

06.この状態でメールを1通「folder.test」に移動します

07.秀丸メールの送受信をします。

08.「folder.test」に移動したメールはそのままですが、
同じメールが「folder\test」にも見えるようになります。

09.この状態でメールを1通「folder\test」に移動します

10.秀丸メールの送受信をします。

11.「folder\test」に移動したメールは「folder\test」にのみ存在します。

12.この状態で「folder」配下にある「test」フォルダを右クリックしフォルダの削除を実行します。

13.次に「folder」フォルダを右クリックしフォルダの削除を実行します。

14.秀丸メールの送受信を実行すると以下のエラーが発生します。
フォルダ削除 - folder.test - メールが残ってるので念のため自動では削除しません。手作業で削除してください。

15.アカウント毎の設定 > メールサーバー > POP/IMAP > IMAP関連 > フォルダ一覧の取得し直し を実行し一覧を確認すると一覧には「folder.test」も「folder\test」もいずれも存在しません。
[ ]
RE:13947 .を含むフォルダの作成No.13950
秀まるお2 さん 25/12/02 11:03 [ コメントを投稿する ]
  お手数かけてすみません。IMAPフォルダ名にピリオドを入れておかしくなるのは、ピリオドをフォルダ階層の区切り文字と誤解してるせいだと思います。フォルダ階層の区切り文字は普通は「/」なんですが、IMAPの仕様でピリオドを使う場合もありえる(そういうサーバーもある)ということで、その辺対応がややこしくなってます。

実は同じ問題を以前にも連絡いただいてました。

過去ログ:
https://log.maruo.co.jp/hidesoft/hidesoft_8/x2107614.html

当時、ユーザー様が個別に対処された(ピリオドを使わないようにした)ので、とりあえず秀丸メールは何もいじらずそのまま放置してしまいましたが、同じ問題でまたお手間取らせてしまったので、何か対策をしないといけないです。メールサーバー側がピリオド区切りなのかスラッシュ区切りなのかテストしてスラッシュならピリオドを使えるようにしつつ、使えないならエラーにする、みたいにするのもちょっと大変なので・・・、やはりピリオドは使えないって風にするしか無い気がします。

とりあえずそういう風に次のβ版で修正する予定とさせいただきつつ、ピリオドは使わないでもらうってことでお願いしたいです。

ピリオドを無理矢理通してダメならエラーにする方式も含めてトライしてみます。
[ ]
RE:13950 .を含むフォルダの作成No.13951
qh さん 25/12/02 11:21 [ コメントを投稿する ]
  秀まるお2様

ご回答ありがとうございます。

その後色々と試していたのですが、
outlook.comのメールではフォルダの作成は問題なく
その後のメールの移動などでも問題は発生しませんでしたが、
フォルダ削除時に手順によっておかしな挙動となりましたので
.は作成時にNGとして頂くのが良いかもしれません。
[ ]
RE:13951 .を含むフォルダの作成No.13953
秀まるお2 さん 25/12/02 16:25 [ コメントを投稿する ]
  IMAPサーバーのフォルダ区切りが「/」か「.」か調べる方法は、ChatGPTに聞いたら分かりました。受信のタイミングでLISTコマンドを送ってるんですが、その応答で判断できました。今はフォルダ一覧の文字列から「/」と「.」の両方を検索して、「/」を含まず「.」を含んでる場合は「.」扱いして、そうでない場合(不定の場合も含む)は「/」扱いしてました。

とりあえず、受信のタイミングで「/」か「.」か調べて、それを適当なファイルに保存して覚えておくようにしつつ、フォルダ作成またはフォルダ名変更のタイミングで、もしも区切りが「.」でフォルダ名に「.」を含む場合はエラーにしようと思います。

ちなみに「/」か「.」かは、受信した後の「送受信 - 直前のやりとり記録」コマンドで出てくる内容の、LISTコマンドの応答で分かります。例えばOutlook.comだと

S C3 LIST "" *
I IMAPフォルダ一覧を取得中
R * LIST (\HasNoChildren) "/" POP
  * LIST (\HasNoChildren) "/" test2
  ....

みたいに "/" を含むことで判断できます。カゴヤさんだとどうなってるか、もし良かったら教えてほしいです。「.」だとしたら、

R * LIST (\HasNoChildren) "." POP
  * LIST (\HasNoChildren) "." test2
  ....

みたいになってるかなぁと思います。
[ ]
RE:13953 .を含むフォルダの作成No.13954
qh さん 25/12/02 16:39 [ コメントを投稿する ]
  秀まるお2様

調査いただきありがとうございます。
カゴヤですが以下のように"."となっていました。

I IMAPフォルダ一覧を取得中
R * LIST (\HasNoChildren) "." Archive

また、別途記載しておりましたoutlook.comの挙動についてですが、
区切り文字とは関係のないフォルダ削除時のおかしな挙動でした。
こちらについては別途新規にコメントをさせていただきます。
[ ]
RE:13954 .を含むフォルダの作成No.13957
秀まるお2 さん 25/12/02 18:52 [ コメントを投稿する ]
  確認ありがとうございます。「.」が区切りの場合はフォルダ作成/名前変更時に「.」入りでエラー表示するようにします。
[ ]

[ 新規に投稿する ]