ソケットプログラミングしないといけないのかと思ったら、CPANモジュールを使えば1行で書けてしまうという話。

search.cpan.org: Net::POP3 - Post Office Protocol 3 Client class (RFC1939)
use Net::POP3;

# Constructors
$pop = Net::POP3->new('pop3host');
$pop = Net::POP3->new('pop3host', Timeout => 60);

if ($pop->login($username, $password) > 0) {
my $msgnums = $pop->list; # hashref of msgnum => size
foreach my $msgnum (keys %$msgnums) {
my $msg = $pop->get($msgnum);
print @$msg;
$pop->delete($msgnum);
}
}

$pop->quit;



当初はfetchmail+procmailで/dev/nullに丸投げ、としていたが、どうもfetchmailがコケる頻度が高いので、もっと単純な仕組みにしてみようということで。

まあBeckyで定期削除でも構わないのだが、ゴミ箱に入れずに削除、というのが出来ないっぽいというのと、Becky上でエラーが発生した場合に検知できないので不採用。

そもそもそんなことがなぜ必要なのか?メールアカウントを廃止すればいいのでは?というツッコミは無しの方向でお願いします。