[ 新規に投稿する ]

IMAPにおける受信でEXISTSが0のときの動作No.00037
myu-ra さん 26/05/22 16:12 [ コメントを投稿する ]
  お世話になります。
IMAPにおける受信動作について確認させて下さい。

手順としては以下の通りです。
@IMAP4メールサーバー上に3通程度受信した状態にする。
A秀丸メールでIMAP4を用いて受信し、受信トレイに3通表示させる。
B他クライアントからIMAPメールサーバー上のメールを全て削除する。
C秀丸メールでIMAP4を用いて再度受信させるが、受信トレイには3通が残ったままとなり消えない。

ログを確認してみたところ、ログ上のEXISTS(IMAPサーバー上のメール数)が0以外であった場合は、

S C3 FETCH 1:* (UID)
R ...(40バイト)
  C3 OK FETCH completed.
I 0 / 0 済み (0Kバイト)
I IMAP同期でメール削除 folder=受信 通数=1
I サーバー上に存在しない1通のメールをパソコン上から削除しました

と削除動作が走りますが、EXISTSが0の場合は上述の動作が行われませんでした。

お手数ですが、EXISTSが0の場合の動作についてご検証頂けますでしょうか。

宜しくお願い致します。
[ ]
RE:00037 IMAPにおける受信でEXISTSが0のときの動作No.00040
秀まるお さん 26/05/22 18:36 [ コメントを投稿する ]
  「SELECT "Inbox"」のようなコマンドを送って「0 EXISTS」の応答があるケースをこちらでテストしてみた限りは大丈夫そうな感じでした。

Yahoo!メールでテストしてみました。僕のYahoo!メールアカウントの受信フォルダに13通のメールがあって、Webメールでそのメールを全部削除して、その後秀丸メールで受信したら、

S C3 SELECT "Inbox"
I 既存メールからUIDLを取得します
I メール一覧を取得中(1/3)
R * 0 EXISTS
  * 0 RECENT
  * OK [UIDVALIDITY 1] UIDs valid
  * OK [UIDNEXT 1072217] Predicted next UID
  * FLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded $Junk $NotJunk)
  * OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded $Junk $NotJunk)] Permanent flags
  * OK [HIGHESTMODSEQ 153930]
  C3 OK [READ-WRITE] SELECT completed; now in selected state

のように、INBOXのメール数が「0 EXISTS」となって、その後

I メール一覧を取得中(2/3)
S C4 SELECT "Spam"

のようになってFETCHコマンドでメールのUID一覧を取得するのをスキップして処理してる様子が確認できました。そして、最後に

S C7 LOGOUT
R * BYE IMAP4rev1 Server logging out
  C7 OK LOGOUT completed
I IMAP同期でメール削除 folder=受信 通数=13
I サーバー上に存在しない13通のメールをパソコン上から削除しました

のようになって、13通のメールが秀丸メール上からも削除されることが確認できました。

ダメな場合は、そのときのやりとり記録とか、メールサーバーの種類がどこかももし良ければ教えてほしいです。

ここに書き込んで都合悪い場合は、"maruo@mitene.or.jp"宛にメールで送ってほしいです。

Webメール上でメールをフォルダ間で移動して0通にしたり1通にしたりといったことをすれば再現できると思います。
[ ]
RE:00040 IMAPにおける受信でEXISTSが0のときの動作No.00043
秀まるお さん 26/05/23 10:00 [ コメントを投稿する ]
  やりとり記録を含むdump.txtを送っていただきまして、状況が理解できて、同じ条件で再現テストしたら再現できました。

再現条件として、例えばINBOXのみダウンロード対象にしてる場合か、またはINBOX以外にもダウンロード対象フォルダがあったとしても、それらすべてのフォルダが空で、サーバー上のメール数が0通だと起きるようでした。サーバー上のメール数がトータル0通の場合に、秀丸メール上からメールを削除する処理がスキップされてしまってました。大変失礼しました。

さっそく修正して、また来週β版アップロードさせていただきます。

送っていただいたdump.txtを含むメールは念のため完全削除させていただきます。

ご協力ありがとうございます。
[ ]
RE:00043 IMAPにおける受信でEXISTSが0のときの動作No.00044
myu-ra さん 26/05/23 16:48 [ コメントを投稿する ]
  お忙しい中、解析下さいましてありがとうございます。

ただEXISTSが0だからという訳ではなく諸条件が絡んだ結果ということなんですね。

ご対応くださいまして、ありがとうございました。
[ ]

[ 新規に投稿する ]