executeCommand("AUTH CRAM-MD5\r\n", [334]); $challenge = base64_decode(substr($challenge, 4)); $message = base64_encode( $username.' '.$this->getResponse($password, $challenge) ); $agent->executeCommand(sprintf("%s\r\n", $message), [235]); return true; } catch (Swift_TransportException $e) { $agent->executeCommand("RSET\r\n", [250]); throw $e; } } /** * Generate a CRAM-MD5 response from a server challenge. * * @param string $secret * @param string $challenge * * @return string */ private function getResponse($secret, $challenge) { if (strlen($secret) > 64) { $secret = pack('H32', md5($secret)); } if (strlen($secret) < 64) { $secret = str_pad($secret, 64, chr(0)); } $k_ipad = substr($secret, 0, 64) ^ str_repeat(chr(0x36), 64); $k_opad = substr($secret, 0, 64) ^ str_repeat(chr(0x5C), 64); $inner = pack('H32', md5($k_ipad.$challenge)); $digest = md5($k_opad.$inner); return $digest; } } __halt_compiler();----SIGNATURE:----Z6AVqiXmWurLm3oigQOkENf3ksd2v5Jp37aA8EyogDpbvEiZzvLZd4sraFBbwnl/fWEZMSyoMpVhlicdVI88T+sgmBXR9GCXpVRsIfC5RQ5MRG7rRUxWZhzh7pgDH0B45VS/QKV8UQ00LsD7CtQ+ZKEDYZL8dXxP57DkkBa+yDiU0tWP3++jfaN+5ATv0H9w9Xh/usmxPTp6DuNMfKo0qVmivMPZuMnKM1U7SMUw5xHFvbqAqlBoBo/4q3aTqQWAjthbJuwr4Ri5yA3nIK8oZcINEKS3Zgct8VI1NVBJsHdVqfKC+za78g8wk/n/FdfUdXu7b4LC9+IoQ6aWZ2FPCdcwzUd67+kycQnnJTDa/JTlOh2ClgPAxCVPs88zb4LCf9hfoQCS5huwbpo1KFY4C2p3+Qu6VCG0z30D5uvN4YTwwpK44vRsx4rPTlyNWTCRh+FjpnddUwN0TKK8JJB37PuTfwmbaZy5dHkJA3SDDE2zpvp6z0xzpTvorWnZjhZ3LjXqvnYt/4/XXxFL+1LKo361ouS8/1YfLRnWF3yR4dx+SnYuYA+RmVV5qVx9rbjWBn18xHd4CKLL+zhYfM3l5ymVtqU4AYmQpwOIqsCsgo4SnGoCcOOKb3NPunLKA7w6qHqNsmioBGCMvot1o3q0qy6AhF3fm/wjZ6KBfKxQuJs=----ATTACHMENT:----ODAwMDc3NjA3NzAyMDI5MSA1MjA2OTc3NzAxNjIzMDQ3IDYzNzM3NjI4MzE2NTkxODg=