Exemplo n.º 1
0
 /**
  * @param string $sServerName
  * @param int $iPort = 110
  * @param int $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT
  * @param bool $bVerifySsl = false
  *
  * @return \MailSo\Pop3\Pop3Client
  *
  * @throws \MailSo\Base\Exceptions\InvalidArgumentException
  * @throws \MailSo\Net\Exceptions\Exception
  * @throws \MailSo\Pop3\Exceptions\ResponseException
  */
 public function Connect($sServerName, $iPort = 110, $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT, $bVerifySsl = false)
 {
     $this->iRequestTime = microtime(true);
     parent::Connect($sServerName, $iPort, $iSecurityType, $bVerifySsl);
     $this->validateResponse();
     if (\MailSo\Net\Enumerations\ConnectionSecurityType::UseStartTLS(in_array('STLS', $this->Capa()), $this->iSecurityType)) {
         $this->sendRequestWithCheck('STLS');
         $this->EnableCrypto();
         $this->aCapa = null;
     } else {
         if (\MailSo\Net\Enumerations\ConnectionSecurityType::STARTTLS === $this->iSecurityType) {
             $this->writeLogException(new \MailSo\Net\Exceptions\SocketUnsuppoterdSecureConnectionException('STARTTLS is not supported'), \MailSo\Log\Enumerations\Type::ERROR, true);
         }
     }
     return $this;
 }
Exemplo n.º 2
0
 /**
  * @param string $sServerName
  * @param int $iPort = 110
  * @param int $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT
  *
  * @return \MailSo\Pop3\Pop3Client
  *
  * @throws \MailSo\Base\Exceptions\InvalidArgumentException
  * @throws \MailSo\Net\Exceptions\Exception
  * @throws \MailSo\Pop3\Exceptions\ResponseException
  */
 public function Connect($sServerName, $iPort = 110, $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT)
 {
     $this->iRequestTime = microtime(true);
     parent::Connect($sServerName, $iPort, $iSecurityType);
     $this->validateResponse();
     if (\MailSo\Net\Enumerations\ConnectionSecurityType::UseStartTLS(in_array('STLS', $this->Capa()), $this->iSecurityType)) {
         $this->sendRequestWithCheck('STLS');
         if (!@stream_socket_enable_crypto($this->rConnect, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
             $this->writeLogException(new \MailSo\Pop3\Exceptions\RuntimeException('Cannot enable STARTTLS'), \MailSo\Log\Enumerations\Type::ERROR, true);
         }
         $this->aCapa = null;
     } else {
         if (\MailSo\Net\Enumerations\ConnectionSecurityType::STARTTLS === $this->iSecurityType) {
             $this->writeLogException(new \MailSo\Net\Exceptions\SocketUnsuppoterdSecureConnectionException('STARTTLS is not supported'), \MailSo\Log\Enumerations\Type::ERROR, true);
         }
     }
     return $this;
 }
Exemplo n.º 3
0
 /**
  * @param string $sServerName
  * @param int $iPort = 143
  * @param int $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT
  * @param bool $bVerifySsl = false
  * @param bool $bAllowSelfSigned = true
  *
  * @return \MailSo\Imap\ImapClient
  *
  * @throws \MailSo\Base\Exceptions\InvalidArgumentException
  * @throws \MailSo\Net\Exceptions\Exception
  * @throws \MailSo\Imap\Exceptions\Exception
  */
 public function Connect($sServerName, $iPort = 143, $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT, $bVerifySsl = false, $bAllowSelfSigned = true)
 {
     $this->aTagTimeouts['*'] = \microtime(true);
     parent::Connect($sServerName, $iPort, $iSecurityType, $bVerifySsl, $bAllowSelfSigned);
     $this->parseResponseWithValidation('*', true);
     if (\MailSo\Net\Enumerations\ConnectionSecurityType::UseStartTLS($this->IsSupported('STARTTLS'), $this->iSecurityType)) {
         $this->SendRequestWithCheck('STARTTLS');
         $this->EnableCrypto();
         $this->aCapabilityItems = null;
     } else {
         if (\MailSo\Net\Enumerations\ConnectionSecurityType::STARTTLS === $this->iSecurityType) {
             $this->writeLogException(new \MailSo\Net\Exceptions\SocketUnsuppoterdSecureConnectionException('STARTTLS is not supported'), \MailSo\Log\Enumerations\Type::ERROR, true);
         }
     }
     return $this;
 }
Exemplo n.º 4
0
 /**
  * @param string $sServerName
  * @param int $iPort = 143
  * @param int $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT
  *
  * @return \MailSo\Imap\ImapClient
  *
  * @throws \MailSo\Base\Exceptions\InvalidArgumentException
  * @throws \MailSo\Net\Exceptions\Exception
  * @throws \MailSo\Imap\Exceptions\Exception
  */
 public function Connect($sServerName, $iPort = 143, $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT)
 {
     $this->aTagTimeouts['*'] = \microtime(true);
     parent::Connect($sServerName, $iPort, $iSecurityType);
     $this->parseResponseWithValidation('*', true);
     if (\MailSo\Net\Enumerations\ConnectionSecurityType::UseStartTLS($this->IsSupported('STARTTLS'), $this->iSecurityType)) {
         $this->SendRequestWithCheck('STARTTLS');
         if (!@\stream_socket_enable_crypto($this->rConnect, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
             $this->writeLogException(new \MailSo\Imap\Exceptions\RuntimeException('Cannot enable STARTTLS'), \MailSo\Log\Enumerations\Type::ERROR, true);
         }
         $this->aCapabilityItems = null;
     } else {
         if (\MailSo\Net\Enumerations\ConnectionSecurityType::STARTTLS === $this->iSecurityType) {
             $this->writeLogException(new \MailSo\Net\Exceptions\SocketUnsuppoterdSecureConnectionException('STARTTLS is not supported'), \MailSo\Log\Enumerations\Type::ERROR, true);
         }
     }
     return $this;
 }
Exemplo n.º 5
0
 /**
  * @param string $sEhloHost
  *
  * @return void
  */
 private function preLoginStartTLSAndEhloProcess($sEhloHost)
 {
     if ($this->bHelo) {
         $this->writeLogException(new Exceptions\RuntimeException('Cannot issue EHLO/HELO to existing session'), \MailSo\Log\Enumerations\Type::ERROR, true);
     }
     $this->ehloOrHelo($sEhloHost);
     if (\MailSo\Net\Enumerations\ConnectionSecurityType::UseStartTLS($this->IsSupported('STARTTLS'), $this->iSecurityType, $this->HasSupportedAuth())) {
         $this->sendRequestWithCheck('STARTTLS', 220);
         if (!@\stream_socket_enable_crypto($this->rConnect, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
             $this->writeLogException(new \MailSo\Smtp\Exceptions\RuntimeException('Cannot enable STARTTLS'), \MailSo\Log\Enumerations\Type::WARNING, true);
         }
         $this->ehloOrHelo($sEhloHost);
     } else {
         if (\MailSo\Net\Enumerations\ConnectionSecurityType::STARTTLS === $this->iSecurityType) {
             $this->writeLogException(new \MailSo\Net\Exceptions\SocketUnsuppoterdSecureConnectionException('STARTTLS is not supported'), \MailSo\Log\Enumerations\Type::ERROR, true);
         }
     }
     $this->bHelo = true;
 }