diff options
Diffstat (limited to 'src/plugins/maildir.php')
-rw-r--r-- | src/plugins/maildir.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/plugins/maildir.php b/src/plugins/maildir.php new file mode 100644 index 0000000..28211b5 --- /dev/null +++ b/src/plugins/maildir.php @@ -0,0 +1,58 @@ +<?php +require_once('Getter.class.php'); +//////////////////////////////////////////////////////////////////////////////// +class Maildir implements Getter { + private $config = array('dir'=>''); + + public function configList() { + return array('dir'=>'text'); + } + + public function init() {} + + public function get() { + $this->handle_new(); + $this->handle_cur(); + $this->handle_tmp(); + } + + private function handle_new() { + // move files in new to cur + $new = $this->config['dir'].'/new'; + $cur = $this->config['dir'].'/cur'; + $dh = opendir($new); + + while (($file = readdir($dh)) !== false) { + if (substr($file,0,1)!='.' && is_file($new.'/'.$file)) { + rename($new.'/'.$file, + $cur.'/'.$file.':'); + } + } + } + private function handle_cur() { + $cur = $this->config['dir'].'/cur'; + $dh = opendir($cur); + + while (($file = readdir($dh)) !== false) { + if (substr($file,0,1)!='.' && is_file($cur.'/'.$file)) { + + } + } + } + private function handle_tmp() { + // Clean up files that haven't been accessed for 36 hours + $tmp = $this->config['dir'].'/tmp'; + $dh = opendir($cur); + + while (($file = readdir($dh)) !== false) { + if (is_file($tmp.'/'.$file)) { + $atime = fileatime($tmp.'/'.$file); + $time = time(); + if (($time-$atime)>(36*60*60)) { + unlink($tmp.'/'.$file); + } + } + } + } + +} |