diff --git a/src/autolink.php b/src/autolink.php index d9ea250..4fc47a0 100644 --- a/src/autolink.php +++ b/src/autolink.php @@ -1,7 +1,7 @@ set('HTML.Nofollow', true); diff --git a/src/imap_client.php b/src/imap_client.php index 1b6a8f4..75314ce 100644 --- a/src/imap_client.php +++ b/src/imap_client.php @@ -16,7 +16,7 @@ class ImapClient { * @param $user User * @return array */ - function get_emails(User $user): array { + public function get_emails(User $user): array { // Search for mails with the recipient $address in TO or CC. $mailsIdsTo = imap_sort($this->mailbox->getImapStream(), SORTARRIVAL, true, SE_UID, 'TO "' . $user->address . '"'); $mailsIdsCc = imap_sort($this->mailbox->getImapStream(), SORTARRIVAL, true, SE_UID, 'CC "' . $user->address . '"'); @@ -34,7 +34,7 @@ class ImapClient { * @param $user User * @internal param the $username matching username */ - function delete_email(string $mailid, User $user) { + public function delete_email(string $mailid, User $user) { if ($this->_load_one_email($mailid, $user) !== null) { $this->mailbox->deleteMail($mailid); $this->mailbox->expungeDeletedMails(); @@ -54,7 +54,7 @@ class ImapClient { * @internal param the $username matching username */ - function download_email(int $mailid, User $user) { + public function download_email(int $mailid, User $user) { if ($this->_load_one_email($mailid, $user) !== null) { header("Content-Type: message/rfc822; charset=utf-8"); header("Content-Disposition: attachment; filename=\"" . $user->address . "-" . $mailid . ".eml\""); @@ -71,7 +71,7 @@ class ImapClient { /** * Load exactly one email, the $address in TO or CC has to match. */ - function _load_one_email(int $mailid, User $user): \PhpImap\IncomingMail { + private function _load_one_email(int $mailid, User $user): \PhpImap\IncomingMail { // in order to avoid https://www.owasp.org/index.php/Top_10_2013-A4-Insecure_Direct_Object_References // the recipient in the email has to match the $address. $emails = $this->_load_emails(array($mailid), $user); @@ -85,7 +85,7 @@ class ImapClient { * @param $user User * @return array of emails */ - function _load_emails(array $mail_ids, User $user) { + private function _load_emails(array $mail_ids, User $user) { $emails = array(); foreach ($mail_ids as $id) { $mail = $this->mailbox->getMail($id); @@ -100,7 +100,7 @@ class ImapClient { /** * deletes messages older than X days. */ - function delete_old_messages(string $delete_messages_older_than) { + public function delete_old_messages(string $delete_messages_older_than) { $ids = $this->mailbox->searchMailbox('BEFORE ' . date('d-M-Y', strtotime($delete_messages_older_than))); foreach ($ids as $id) { $this->mailbox->deleteMail($id); diff --git a/src/index.php b/src/index.php index 11d23ef..6d9a6f1 100644 --- a/src/index.php +++ b/src/index.php @@ -5,26 +5,18 @@ require_once '../../config.php'; # load php dependencies: require_once './backend-libs/autoload.php'; - require_once './user.php'; -require_once './autolink.php'; +require_once './imap_client.php'; require_once './pages.php'; require_once './router.php'; -require_once './imap_client.php'; + +$imapClient = new ImapClient($config['imap']['url'], $config['imap']['username'], $config['imap']['password']); $router = new Router($_SERVER['REQUEST_METHOD'], $_GET['action'] ?? NULL, $_GET, $_POST, $_SERVER['QUERY_STRING'], $config); $page = $router->route(); - -// TODO: remove $mailbox -$mailbox = new PhpImap\Mailbox($config['imap']['url'], - $config['imap']['username'], - $config['imap']['password']); - -$imapClient = new ImapClient($config['imap']['url'], $config['imap']['username'], $config['imap']['password']); $page->invoke($imapClient); // delete after each request $imapClient->delete_old_messages($config['delete_messages_older_than']); - ?> \ No newline at end of file diff --git a/src/pages.php b/src/pages.php index edeaa4a..5c8a814 100644 --- a/src/pages.php +++ b/src/pages.php @@ -1,5 +1,7 @@ action === 'random') { return new RedirectToRandomAddressPage($this->config['domains']); - } elseif (empty($this->query_string)) { - return new RedirectToRandomAddressPage($this->config['domains']); - } elseif (!empty($this->query_string)) { return new DisplayEmailsPage($this->query_string, $this->config); } else { - return new InvalidRequestPage(); - + return new RedirectToRandomAddressPage($this->config['domains']); } } } \ No newline at end of file