Net_POP3でメールの削除ができない
2008/05/06 | その他PEAR全般
Zend_Mailでのメール受信がうまくいかない(場合がある)。一つのライブラリ群に固執するつもりもないのでPEARを使うことにした。PEARでメールを受信するといえば「Net_POP3」が代表的(かな)。受信はこんな感じ。
$pop =& new Net_POP3;
$pop->connect($host);
$result = $pop->login($userId, $password);
if (PEAR::isError($result)) {
exit(‘Error’);
}else{
foreach($i=0;$i<$pop->numMsg();$i++;){
$message=$pop->getMsg($i+1);
//$messageはヘッダ・本文含めて全部
//処理内容
}
}
で、メールの削除は処理内容のところで以下のようにすればいいはずなのだが。
$pop->deleteMsg($i+1);
消えない。なぜ?。
答えは簡単。接続終了を明示的に実行していなかったからだ。接続の最後に以下の1行を追加して無事削除することができた。
$pop->disconnect();
トランザクションのcommitみたいなものかな。