/** * Try to authenticate the user with $email and $token. * * @param Swift_Transport_SmtpAgent $agent * @param string $email * @param string $token * * @return bool */ public function authenticate(Swift_Transport_SmtpAgent $agent, $email, $token) { try { $param = $this->constructXOAuth2Params($email, $token); $agent->executeCommand("AUTH XOAUTH2 " . $param . "\r\n", array(235)); return true; } catch (Swift_TransportException $e) { $agent->executeCommand("RSET\r\n", array(250)); return false; } }
/** * Try to authenticate the user with $username and $password. * @param Swift_Transport_SmtpAgent $agent * @param string $username * @param string $password * @return boolean */ public function authenticate(Swift_Transport_SmtpAgent $agent, $username, $password) { try { $message = base64_encode($username . chr(0) . $username . chr(0) . $password); $agent->executeCommand(sprintf("AUTH PLAIN %s\r\n", $message), array(235)); return true; } catch (Swift_TransportException $e) { $agent->executeCommand("RSET\r\n", array(250)); return false; } }
/** * Try to authenticate the user with $username and $password. * @param Swift_Transport_SmtpAgent $agent * @param string $username * @param string $password * @return boolean */ public function authenticate(Swift_Transport_SmtpAgent $agent, $username, $password) { try { $agent->executeCommand("AUTH LOGIN\r\n", array(334)); $agent->executeCommand(sprintf("%s\r\n", base64_encode($username)), array(334)); $agent->executeCommand(sprintf("%s\r\n", base64_encode($password)), array(235)); return true; } catch (Swift_TransportException $e) { $agent->executeCommand("RSET\r\n", array(250)); return false; } }
/** * Try to authenticate the user with $username and $password. * * @param Swift_Transport_SmtpAgent $agent * @param string $username * @param string $password * * @return boolean */ public function authenticate(Swift_Transport_SmtpAgent $agent, $username, $password) { try { $challenge = $agent->executeCommand("AUTH CRAM-MD5\r\n", array(334)); $challenge = base64_decode(substr($challenge, 4)); $message = base64_encode($username . ' ' . $this->_getResponse($password, $challenge)); $agent->executeCommand(sprintf("%s\r\n", $message), array(235)); return true; } catch (Swift_TransportException $e) { $agent->executeCommand("RSET\r\n", array(250)); return false; } }
/** * Send our final message with all our data * * @param string $response Message 1 response (message 2) * @param string $username * @param string $password * @param string $timestamp * @param string $client * @param Swift_Transport_SmtpAgent $agent * @param bool $v2 Use version2 of the protocol * @return string */ protected function sendMessage3($response, $username, $password, $timestamp, $client, Swift_Transport_SmtpAgent $agent, $v2 = true) { list($domain, $username) = $this->getDomainAndUsername($username); //$challenge, $context, $targetInfoH, $targetName, $domainName, $workstation, $DNSDomainName, $DNSServerName, $blob, $ter list($challenge, , , , , $workstation, , , $blob) = $this->parseMessage2($response); if (!$v2) { // LMv1 $lmResponse = $this->createLMPassword($password, $challenge); // NTLMv1 $ntlmResponse = $this->createNTLMPassword($password, $challenge); } else { // LMv2 $lmResponse = $this->createLMv2Password($password, $username, $domain, $challenge, $client); // NTLMv2 $ntlmResponse = $this->createNTLMv2Hash($password, $username, $domain, $challenge, $blob, $timestamp, $client); } $message = $this->createMessage3($domain, $username, $workstation, $lmResponse, $ntlmResponse); return $agent->executeCommand(sprintf("%s\r\n", base64_encode($message)), array(235)); }