jfhovinne

POP3 filter in PHP using Zend Framework

2011-06-19

Install Zend Framework (Debian way)

$ apt-get install zendframework

pop3filter.php

$ su - john
$ mkdir -p bin/pop3filter
$ touch bin/pop3filter/pop3filter.php
<?php
require_once 'Zend/Mail/Storage/Pop3.php';

$spammers = array(
    "spamaddress1@example.com",
    "spamaddress2@example.com",
);

$mail = new Zend_Mail_Storage_Pop3(array('host' => 'pop3.example.com', 'user' => 'john.doe@example.com', 'password' => 'example', 'port' => 110));

echo $mail->countMessages() . " messages found\n";

foreach ($mail as $messageId => $message) {
  echo "{$messageId} : Mail from '{$message->from}': {$message->subject}\n";

  if(in_array(strtolower($message->from), $spammers, true)) {
    $mail->removeMessage($messageId);
    echo "Message removed\n";
  }
}

?>

Crontab

$ crontab -e
# m h  dom mon dow   command
*/10 * * * * /usr/bin/php /home/john/bin/pop3filter/pop3filter.php > /dev/null 2>&1