summaryrefslogtreecommitdiff
path: root/src/plugins/maildir.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/maildir.php')
-rw-r--r--src/plugins/maildir.php58
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);
+ }
+ }
+ }
+ }
+
+}