Установление IMAP-соединения с использованием PHP fsockopen () - PullRequest
0 голосов
/ 03 августа 2020

Цель: создание класса для подключения к серверу IMAP и отправки commands

Вот что я сделал:

  1. Class connection принимает host , port и необязательный timeout в качестве параметров.
  2. Определена функция __constructor() для создания нового соединения с использованием fsockopen().
  3. Определена функция command() для предоставления команды для успешно подключенного сервера IMAP.

Нет проблем с функцией __constructor(). Но основная проблема связана с функцией command(). Я не смог echo какую-либо команду, полученную с сервера, после того, как дал команду входа в систему.

Весь этот процесс может быть бесполезен для установления соединений IMAP, но мне нужно научиться. Итак, пожалуйста, помогите мне и заранее спасибо.

Ниже приводится PHP Код


class connection {
  public $pointer;
  function __construct(...$args){
    if (count($args) < 2){
      echo "\033[01;31m Error: Insufficient number of arguments given \033[0m";
      return;
    }
    elseif (count($args) == 2){
      if (!(is_numeric($args[1]))){
        echo "\033[01;31m Error: Invalid 2nd argument \033[0m";
        die();
      }
      elseif (!(is_string($args[0]))){
        echo "\033[01;31m Error: Invalid 1st argument \033[0m";
        die();
      }
      else{
        $fp = @fsockopen($args[0],$args[1]);
        if (!($fp)){
          echo "\033[01;31m Failed: Cannot connect to the host ".$args[0]." via port ".$args[1]."\033[0m";
          die();
        }
        else{
          echo "Success: Connection established to the host ".$args[0]." via port ".$args[1];
          $this->pointer = $fp;
          return $fp;
        }
      }
    }
    elseif (count($args) == 3){
      if (!(is_numeric($args[1]))){
        echo "\033[01;31m Error: Invalid 2nd argument given to function: __construct() of connection() \033[0m";
        die();
      }
      elseif (!(is_string($args[0]))){
        echo "\033[01;31m Error: Invalid 1st argument given to function: __construct() of connection() \033[0m";
        die();
      }
      elseif (!(is_numeric($args[2]))){
        echo "\033[01;31m Error: Invalid 3rd argument given to function: __construct() of connection() \033[0m";
        die();
      }
      else{
        $fp = @fsockopen($args[0],$args[1],$args[2]);
        if (!($fp)){
          echo "\033[01;31m Failed: Cannot connect to the host ".$args[0]." via port ".$args[1]."\033[0m";
          die();
        }
        else{
          echo "Success: Connection established to the host ".$args[0]." via port ".$args[1]."\n";
          $this->pointer = $fp;
          return $fp;
        }
      }
    }
  }
  function command($string){
    if (!(is_string($string))){
      echo "\033[01;31m Error: Invalid argument given to function: command()\033[0m";
      die();
    }
    else{
      $send = fputs($this->pointer,$string);
      $return = fgets($this->pointer);
      echo $return;
    }
  }
}
$point = new connection("imap.gmail.com",993,30);
$point->command("a00001 login ****** ********");

?>




Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...