Exemplo n.º 1
0
 /**
  * @param \RainLoop\Plugins\Manager $oPlugins
  * @param \MailSo\Mail\MailClient $oMailClient
  * @param \RainLoop\Application $oConfig
  *
  * @return bool
  */
 public function IncConnectAndLoginHelper($oPlugins, $oMailClient, $oConfig)
 {
     $bLogin = false;
     $aImapCredentials = array('UseConnect' => true, 'UseAuth' => true, 'Host' => $this->DomainIncHost(), 'Port' => $this->DomainIncPort(), 'Secure' => $this->DomainIncSecure(), 'Login' => $this->IncLogin(), 'Password' => $this->Password(), 'ProxyAuthUser' => $this->ProxyAuthUser(), 'ProxyAuthPassword' => $this->ProxyAuthPassword(), 'VerifySsl' => !!$oConfig->Get('ssl', 'verify_certificate', false), 'AllowSelfSigned' => !!$oConfig->Get('ssl', 'allow_self_signed', true), 'UseAuthPlainIfSupported' => !!$oConfig->Get('labs', 'use_imap_auth_plain'));
     $oPlugins->RunHook('filter.imap-credentials', array($this, &$aImapCredentials));
     $oPlugins->RunHook('event.imap-pre-connect', array($this, $aImapCredentials['UseConnect'], $aImapCredentials));
     if ($aImapCredentials['UseConnect']) {
         $oMailClient->Connect($aImapCredentials['Host'], $aImapCredentials['Port'], $aImapCredentials['Secure'], $aImapCredentials['VerifySsl'], $aImapCredentials['AllowSelfSigned']);
     }
     $oPlugins->RunHook('event.imap-pre-login', array($this, $aImapCredentials['UseAuth'], $aImapCredentials));
     if ($aImapCredentials['UseAuth']) {
         if (0 < \strlen($aImapCredentials['ProxyAuthUser']) && 0 < \strlen($aImapCredentials['ProxyAuthPassword'])) {
             $oMailClient->Login($aImapCredentials['ProxyAuthUser'], $aImapCredentials['ProxyAuthPassword'], $aImapCredentials['Login'], $aImapCredentials['UseAuthPlainIfSupported']);
         } else {
             $iGatLen = \strlen(APP_GOOGLE_ACCESS_TOKEN_PREFIX);
             $sPassword = $aImapCredentials['Password'];
             if (APP_GOOGLE_ACCESS_TOKEN_PREFIX === \substr($sPassword, 0, $iGatLen)) {
                 $oMailClient->LoginWithXOauth2(\base64_encode('user='******'Login'] . "" . 'auth=Bearer ' . \substr($sPassword, $iGatLen) . ""));
             } else {
                 $oMailClient->Login($aImapCredentials['Login'], $aImapCredentials['Password'], '', $aImapCredentials['UseAuthPlainIfSupported']);
             }
         }
         $bLogin = true;
     }
     $oPlugins->RunHook('event.imap-post-login', array($this, $aImapCredentials['UseAuth'], $bLogin, $aImapCredentials));
     return $bLogin;
 }
Exemplo n.º 2
0
 /**
  * @param \RainLoop\Plugins\Manager $oPlugins
  * @param \MailSo\Mail\MailClient $oMailClient
  * @param \RainLoop\Application $oConfig
  *
  * @return bool
  */
 public function IncConnectAndLoginHelper($oPlugins, $oMailClient, $oConfig)
 {
     $bLogin = false;
     $aImapCredentials = array('UseConnect' => true, 'UseAuth' => true, 'Host' => $this->DomainIncHost(), 'Port' => $this->DomainIncPort(), 'Secure' => $this->DomainIncSecure(), 'Login' => $this->IncLogin(), 'Password' => $this->Password(), 'ProxyAuthUser' => $this->ProxyAuthUser(), 'ProxyAuthPassword' => $this->ProxyAuthPassword(), 'VerifySsl' => !!$oConfig->Get('ssl', 'verify_certificate', false), 'AllowSelfSigned' => !!$oConfig->Get('ssl', 'allow_self_signed', true), 'UseAuthPlainIfSupported' => !!$oConfig->Get('labs', 'use_imap_auth_plain'));
     $oPlugins->RunHook('filter.imap-credentials', array($this, &$aImapCredentials));
     $oPlugins->RunHook('event.imap-pre-connect', array($this, $aImapCredentials['UseConnect'], $aImapCredentials));
     if ($aImapCredentials['UseConnect']) {
         $oMailClient->Connect($aImapCredentials['Host'], $aImapCredentials['Port'], $aImapCredentials['Secure'], $aImapCredentials['VerifySsl'], $aImapCredentials['AllowSelfSigned']);
     }
     $oPlugins->RunHook('event.imap-pre-login', array($this, $aImapCredentials['UseAuth'], $aImapCredentials));
     if ($aImapCredentials['UseAuth']) {
         if (0 < \strlen($aImapCredentials['ProxyAuthUser']) && 0 < \strlen($aImapCredentials['ProxyAuthPassword'])) {
             $oMailClient->Login($aImapCredentials['ProxyAuthUser'], $aImapCredentials['ProxyAuthPassword'], $aImapCredentials['Login'], $aImapCredentials['UseAuthPlainIfSupported']);
         } else {
             $oMailClient->Login($aImapCredentials['Login'], $aImapCredentials['Password'], '', $aImapCredentials['UseAuthPlainIfSupported']);
         }
         $bLogin = true;
     }
     $oPlugins->RunHook('event.imap-post-login', array($this, $aImapCredentials['UseAuth'], $bLogin, $aImapCredentials));
     return $bLogin;
 }