POP3を提供しているサーバーにtelnet
する。
ポートは110番。
$ telnet example.com 110
Trying XXX.XXX.XXX.XXX...
Connected to mail.example.com.
Escape character is '^]'.
+OK
なお、MacOS では High Sierra 以降 telnet
コマンドが同梱されなくなったが、curl telnet://example.com:110
で代用できる。
USER
コマンド
USER xxx@example.com
+OK
PASS
コマンド
PASS XXXXXXX
+OK Logged in.
以上でログイン完了。
STAT
コマンド
STAT
+OK 702611 4556156834
STAT
コマンドでサーバーに溜まっているメールの件数と容量を確認(上の例では70万数千件/4GB以上溜まっている)。
DELE
コマンド
DELE 1
DELE 2
DELE 3
DELE 4
DELE 5
...
+OK Marked to be deleted.
+OK Marked to be deleted.
+OK Marked to be deleted.
+OK Marked to be deleted.
+OK Marked to be deleted.
...
削除したいメールの件数分、DELE
コマンドを打つ(引数はメッセージ番号で、常に1から始まる)。
70万件削除するなら、DELE 1
〜 DELE 700000
まで入力する。
ただ、あまりに件数が多いと終わらないうちにタイムアウトして強制ログアウトされてしまう場合があるので、10万件ずつなどにしておくのがよいのではないか。
DELE
コマンド10万回分をコピペできるように gist にした(注意:最終行にQUIT
コマンドも入れている)。
QUIT
コマンド
QUIT
+OK Logging out, messages deleted.
Connection closed by foreign host.
実はDELE
コマンドだけでは実際の削除は完了しておらず、削除したいメッセージにマーキングされるだけ。
QUIT
したときにはじめて実際の削除がなされる(QUIT
する前ならRSET
コマンドを打てば取り消せる)。
なので、70万件を10万件ずつ削除するなら、7回、ログイン/ログアウトを繰り返してDELE 1
〜 DELE 100000
する必要がある。
以上です。
その他のコマンド
RETR [メッセージ番号]
メッセージの内容を表示。
RSET
削除取り消し。