diff options
Diffstat (limited to 'scripts/maildaemon.php')
-rwxr-xr-x | scripts/maildaemon.php | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/scripts/maildaemon.php b/scripts/maildaemon.php index 3d3b30951..db283c4a0 100755 --- a/scripts/maildaemon.php +++ b/scripts/maildaemon.php @@ -58,9 +58,8 @@ class MailerDaemon { $this->error($from, _('Sorry, no incoming email allowed.')); return false; } - $response = $this->handle_command($user, $msg); + $response = $this->handle_command($user, $from, $msg); if ($response) { - $this->respond($from, $to, $response); return true; } $msg = $this->cleanup_msg($msg); @@ -97,31 +96,16 @@ class MailerDaemon { return false; } - function handle_command($user, $msg) { - $cmd = trim(strtolower($msg)); - switch ($cmd) { - case 'off': - $this->set_notify($user, false); + function handle_command($user, $from, $msg) { + $inter = new CommandInterpreter(); + $cmd = $inter->handle_command($user, $msg); + if ($cmd) { + $cmd->execute(new MailChannel($from)); return true; - case 'on': - $this->set_notify($user, true); - return true; - default: - return false; } + return false; } - function set_notify($user, $value) { - $orig = clone($user); - $user->smsnotify = $value; - $result = $user->update($orig); - if (!$result) { - common_log_db_error($user, 'UPDATE', __FILE__); - return false; - } - return true; - } - function respond($from, $to, $response) { $headers['From'] = $to; |