私は,会社の共通のwebメールサーバ(imapサーバ)に,3ヶ月分のメールを置いている.
ちょっとした操作ミスで,今日,そのメールサーバのゴミ箱にアクセスできなくなってしまった.
アクセスできなくなる直前のメールボックス構成は次の通り.
- INBOX
- 今月のメール
- old
- 先月のメール
- Trash
- 先々月のメール
私の使っているメーラのThunderbirdの場合,Trash以外のメールボックスで削除をするとメールがゴミ箱に入る.
先々月のメールを完全削除する前に先月のメールを削除してしまったので,その時点でTrashの中のメール数は2000~3000通くらいあったのだと思う.
一つのメールボックス内のメール数(多分メールボックスのサイズが効いている)が増えると,たまに応答がなくなってタイムアウトするので,まずいなーと思ってアクセスすると…
案の定,タイムアウトして中身を見ることも,ゴミ箱を右クリックして空にするコマンドも動作しなかった.
環境はこんな感じ.
- imapサーバソフトは,どうもUW-IMAPくさい.ホームディレクトリの通常ファイルが全部丸見えるためだ.
- 先日,sshやtelnetでshellへログインすることは全社的に禁止された.普通にアクセスしてシェルからファイルを消すことはできない.
現状認識
まぁでも,webメールから表示するメールボックスの選択ができるということは,ホームディレクトリをリストするコマンドは通っているはずだ.
メーラからimapサーバ上のフォルダを消したりできるので,imapの操作でファイルを消すこともできるはずだ.
つーことで,imapコマンドを調べながら,telnetで143にアクセスしてみた.
応答を見るとimap4らしい.
[IMAP4のコマンド一覧](http://www.atmarkit.co.jp/fnetwork/rensai/netpro09/imap4-command.html)のページを見ながら適当にいじったら,どうにかなったので,以下はそのログ抜粋.
基本的には私の打ち込んだコマンドのみ表示して,応答は省略.
ついでに,oldも消すことにした
1 login ***(username) ***(passwd)
2 list "" *
3 delete ./Trash
これで,ゴミ箱のメールボックスファイルが削除された.
次に,Thunderbirdを起動.
- oldフォルダをゴミ箱に入れる.すると,Trashがメールボックスファイルではなくディレクトリとして生成される.
- Thunderbirdからゴミ箱を空にする.すると,Trash/oldが削除される.
(この過程を踏まないと,.mailboxlist というファイルが更新できないので,thunderbird上から old が消えない.
thunderbirdもimapを叩いているだけだと思うので,実際には.mailboxlistを更新するようなコマンドがあると思う.これを使えばもっと早いのだが…それはよく分からなかった)
さっきログインしたままのコンソールから続きを入力する.
4 delete ./Trash
5 create ./Trash
6 logout
これで,Trashというメールボックスファイルが生成され,oldとか先月のメールとかがなかったことになる.