telnet と imap4 でメールサーバ操作

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

私は,会社の共通の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とか先月のメールとかがなかったことになる.