index.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. // check for common errors
  3. if (version_compare(phpversion(), '7.2', '<')) {
  4. die("ERROR! The php version isn't high enough, you need at least 7.2 to run this application! But you have: " . phpversion());
  5. }
  6. extension_loaded("imap") || die('ERROR: IMAP extension not loaded. Please see the installation instructions in the README.md');
  7. # load php dependencies:
  8. require_once './vendor/autoload.php';
  9. require_once './config_helper.php';
  10. require_once './User.php';
  11. require_once './imap_client.php';
  12. require_once './controller.php';
  13. load_config();
  14. $imapClient = new ImapClient($config['imap']['url'], $config['imap']['username'], $config['imap']['password']);
  15. if (DisplayEmailsController::matches()) {
  16. DisplayEmailsController::invoke($imapClient, $config);
  17. } elseif (RedirectToAddressController::matches()) {
  18. RedirectToAddressController::invoke($imapClient, $config);
  19. } elseif (RedirectToRandomAddressController::matches()) {
  20. RedirectToRandomAddressController::invoke($imapClient, $config);
  21. } elseif (DownloadEmailController::matches()) {
  22. DownloadEmailController::invoke($imapClient, $config);
  23. } elseif (DeleteEmailController::matches()) {
  24. DeleteEmailController::invoke($imapClient, $config);
  25. } elseif (HasNewMessagesControllerJson::matches()) {
  26. HasNewMessagesControllerJson::invoke($imapClient, $config);
  27. } else {
  28. // If requesting the main site, just redirect to a new random mailbox.
  29. RedirectToRandomAddressController::invoke($imapClient, $config);
  30. }
  31. // delete after each request
  32. $imapClient->delete_old_messages($config['delete_messages_older_than']);