'err','reason'=>'Invalid Email address'); unset($action); } $dir = getDirForEmail($email); $email = basename($dir); } switch($action) { case 'del': $id = intval($_REQUEST['mid']); if(!is_dir($dir)) $o = array('status'=>'err','reason'=>'No emails received on this address'); else if(!is_numeric($id) || !emailIDExists($email,$id)) $o = array('status'=>'err','reason'=>'Invalid Email ID'); else { if(unlink($dir.DS.$id.'.json')) $o = array('status'=>'ok'); else $o = array('status'=>'err','reason'=>'Could not delete email'); } break; case 'getdoms': $settings = loadSettings(); if($settings['DOMAINS']) $o = explode(',',$settings['DOMAINS']); break; case 'attachment': $id = intval($_REQUEST['id']); $filename = basename(realpath($_REQUEST['filename'])); $filepath = $dir.DS.'attachments'.DS.$id.'-'.$filename; if(!is_dir($dir)) $o = array('status'=>'err','reason'=>'No emails received on this address'); else if(!is_numeric($id) || !emailIDExists($email,$id)) $o = array('status'=>'err','reason'=>'Invalid Email ID'); else if(!file_exists($filepath)) $o = array('status'=>'err','reason'=>'File not found'); else { header('Content-Type: '.mime_content_type($filepath)); readfile($filepath); exit(); } break; case 'load': $id = intval($_REQUEST['id']); if(empty($email)) $o = array('status'=>'err','reason'=>'No email address provided'); else if(!is_dir($dir)) $o = array('status'=>'err','reason'=>'No emails received on this address'); else if(!is_numeric($id) || !emailIDExists($email,$id)) $o = array('status'=>'err','reason'=>'Invalid Email ID'); else { $data = getEmail($email,$id); if($_REQUEST['raw']=='true') { header('Content-Type: text/plain'); exit($data['raw']); } $o = array('status'=>'ok','data'=>$data); } break; case 'list': $settings = loadSettings(); if($settings['ADMIN'] && $settings['ADMIN']==$email) { $o['status'] = 'ok'; $o['type'] = 'admin'; $o['dateformat'] = $settings['DATEFORMAT']; $emails = listEmailAdresses(); $emaillist = array(); if(count($emails)) { foreach($emails as $email) { $emaildata = getEmailsOfEmail($email); foreach($emaildata as $time=>$d) { $emaillist[$time.'-'.$email]=$d; } } if(is_array($emaillist)) krsort($emaillist); $data = (count($emaillist)?$emaillist:array()); } $o['emails']=$data; } else if(!is_dir($dir)) $o = array('status'=>'ok','emails'=>[]); else { $data = getEmailsOfEmail($email); $lastid = $_REQUEST['lastid']; if($lastid && is_numeric($lastid)) { foreach($data as $time=>$d) { if($time>$lastid) $emails[$time]=$d; } $data = (is_array($emails)?$emails:array()); } $o = array('status'=>'ok','emails'=>$data); } break; } echo json_encode($o); //var_dump($o);