[Commo Lisp] POP3 でのメール削除
全く使ってなかたプロバイダのメールをひさしぶりにチェックしてみたら4000通以上のメールがたまっていた。メーラーは Opera を使っているのだが、メールのフェッチ途中で落ちてしまう。どうせ SPAM メールばかりだから全部容赦なく消してしまうことにした。
さっぱりした。複数行のレスポンスは考慮してないし、認証もプレーンテキストなので。。。
(defparameter *host* "xxx")
(defparameter *user* "xxx")
(defparameter *pass* "xxx")
(require :usocket)
(defun snd (stream &rest message)
(let ((message (format nil "~{~a~^ ~}~c~c" message #\cr #\lf)))
(print (remove #\cr message))
(write-string message stream)
(force-output stream)))
(defun rev (stream)
(print (remove #\cr (read-line stream nil))))
(usocket:with-client-socket (socket stream *host* 110)
(rev stream)
(snd stream :USER *user*)
(rev stream)
(snd stream :PASS *pass*)
(rev stream)
(snd stream :STAT)
(destructuring-bind (state count size)
(read-from-string (concatenate 'string "(" (rev stream) ")"))
(loop for i from 1 to count
do (snd stream :DELE i)
do (rev stream)))
(snd stream :QUIT)
(rev stream))
0 件のコメント:
コメントを投稿