diff options
author | yehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664> | 2017-10-15 06:46:12 +0000 |
---|---|---|
committer | yehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664> | 2017-10-15 06:46:12 +0000 |
commit | ca6c8f41c1a2b9a4b5acae91419a6a114e1c77c6 (patch) | |
tree | 40ff112761d82af1d8c1c89d30ede8206502e17b /Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp | |
parent | 8812fbf61bde539d1599e239044595ccb8a2c3a5 (diff) | |
download | Post-SMTP-ca6c8f41c1a2b9a4b5acae91419a6a114e1c77c6.zip |
release
Diffstat (limited to 'Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp')
4 files changed, 380 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Crammd5.php b/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Crammd5.php new file mode 100644 index 0000000..7ca9c1d --- /dev/null +++ b/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Crammd5.php @@ -0,0 +1,108 @@ +<?php +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Postman_Zend_Mail + * @subpackage Protocol + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id$ + */ + + +/** + * @see Postman_Zend_Mail_Protocol_Smtp + */ +// require_once 'Zend/Mail/Protocol/Smtp.php'; + + +/** + * Performs CRAM-MD5 authentication + * + * @category Zend + * @package Postman_Zend_Mail + * @subpackage Protocol + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Postman_Zend_Mail_Protocol_Smtp_Auth_Crammd5 extends Postman_Zend_Mail_Protocol_Smtp +{ + /** + * Constructor. + * + * @param string $host (Default: 127.0.0.1) + * @param int $port (Default: null) + * @param array $config Auth-specific parameters + * @return void + */ + public function __construct($host = '127.0.0.1', $port = null, $config = null) + { + if (is_array($config)) { + if (isset($config['username'])) { + $this->_username = $config['username']; + } + if (isset($config['password'])) { + $this->_password = $config['password']; + } + } + + parent::__construct($host, $port, $config); + } + + + /** + * @todo Perform CRAM-MD5 authentication with supplied credentials + * + * @return void + */ + public function auth() + { + // Ensure AUTH has not already been initiated. + parent::auth(); + + $this->_send('AUTH CRAM-MD5'); + $challenge = $this->_expect(334); + $challenge = base64_decode($challenge); + $digest = $this->_hmacMd5($this->_password, $challenge); + $this->_send(base64_encode($this->_username . ' ' . $digest)); + $this->_expect(235); + $this->_auth = true; + } + + + /** + * Prepare CRAM-MD5 response to server's ticket + * + * @param string $key Challenge key (usually password) + * @param string $data Challenge data + * @param string $block Length of blocks + * @return string + */ + protected function _hmacMd5($key, $data, $block = 64) + { + if (strlen($key) > 64) { + $key = pack('H32', md5($key)); + } elseif (strlen($key) < 64) { + $key = str_pad($key, $block, "\0"); + } + + $k_ipad = substr($key, 0, 64) ^ str_repeat(chr(0x36), 64); + $k_opad = substr($key, 0, 64) ^ str_repeat(chr(0x5C), 64); + + $inner = pack('H32', md5($k_ipad . $data)); + $digest = md5($k_opad . $inner); + + return $digest; + } +} diff --git a/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Login.php b/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Login.php new file mode 100644 index 0000000..714b6fb --- /dev/null +++ b/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Login.php @@ -0,0 +1,98 @@ +<?php +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Postman_Zend_Mail + * @subpackage Protocol + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id$ + */ + + +/** + * @see Postman_Zend_Mail_Protocol_Smtp + */ +// require_once 'Zend/Mail/Protocol/Smtp.php'; + + +/** + * Performs LOGIN authentication + * + * @category Zend + * @package Postman_Zend_Mail + * @subpackage Protocol + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Postman_Zend_Mail_Protocol_Smtp_Auth_Login extends Postman_Zend_Mail_Protocol_Smtp +{ + /** + * LOGIN username + * + * @var string + */ + protected $_username; + + + /** + * LOGIN password + * + * @var string + */ + protected $_password; + + + /** + * Constructor. + * + * @param string $host (Default: 127.0.0.1) + * @param int $port (Default: null) + * @param array $config Auth-specific parameters + * @return void + */ + public function __construct($host = '127.0.0.1', $port = null, $config = null) + { + if (is_array($config)) { + if (isset($config['username'])) { + $this->_username = $config['username']; + } + if (isset($config['password'])) { + $this->_password = $config['password']; + } + } + + parent::__construct($host, $port, $config); + } + + + /** + * Perform LOGIN authentication with supplied credentials + * + * @return void + */ + public function auth() + { + // Ensure AUTH has not already been initiated. + parent::auth(); + + $this->_send('AUTH LOGIN'); + $this->_expect(334); + $this->_send(base64_encode($this->_username)); + $this->_expect(334); + $this->_send(base64_encode($this->_password)); + $this->_expect(235); + $this->_auth = true; + } +} diff --git a/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Oauth2.php b/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Oauth2.php new file mode 100644 index 0000000..7b181ad --- /dev/null +++ b/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Oauth2.php @@ -0,0 +1,78 @@ +<?php +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Postman_Zend_Mail + * @subpackage Protocol + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id: Login.php 24593 2012-01-05 20:35:02Z matthew $ + */ + +/** + * @see Postman_Zend_Mail_Protocol_Smtp + */ + +/** + * Performs Oauth2 authentication + * + * @category Zend + * @package Postman_Zend_Mail + * @subpackage Protocol + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Postman_Zend_Mail_Protocol_Smtp_Auth_Oauth2 extends Postman_Zend_Mail_Protocol_Smtp +{ + /** + * LOGIN xoauth2 request + * + * @var string + */ + protected $_xoauth2_request; + + /** + * Constructor. + * + * @param string $host (Default: 127.0.0.1) + * @param int $port (Default: null) + * @param array $config Auth-specific parameters + * @return void + */ + public function __construct($host = '127.0.0.1', $port = null, $config = null) + { + if (is_array($config)) { + if (isset($config['xoauth2_request'])) { + $this->_xoauth2_request = $config['xoauth2_request']; + } + } + + parent::__construct($host, $port, $config); + } + + /** + * Perform LOGIN authentication with supplied credentials + * + * @return void + */ + public function auth() + { + // Ensure AUTH has not already been initiated. + parent::auth(); + + $this->_send('AUTH XOAUTH2 '.$this->_xoauth2_request); + $this->_expect(235); + $this->_auth = true; + } +}
\ No newline at end of file diff --git a/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Plain.php b/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Plain.php new file mode 100644 index 0000000..73df793 --- /dev/null +++ b/Postman/Postman-Mail/Zend-1.12.10/Mail/Protocol/Smtp/Auth/Plain.php @@ -0,0 +1,96 @@ +<?php +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Postman_Zend_Mail + * @subpackage Protocol + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id$ + */ + + +/** + * @see Postman_Zend_Mail_Protocol_Smtp + */ +// require_once 'Zend/Mail/Protocol/Smtp.php'; + + +/** + * Performs PLAIN authentication + * + * @category Zend + * @package Postman_Zend_Mail + * @subpackage Protocol + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ +class Postman_Zend_Mail_Protocol_Smtp_Auth_Plain extends Postman_Zend_Mail_Protocol_Smtp +{ + /** + * PLAIN username + * + * @var string + */ + protected $_username; + + + /** + * PLAIN password + * + * @var string + */ + protected $_password; + + + /** + * Constructor. + * + * @param string $host (Default: 127.0.0.1) + * @param int $port (Default: null) + * @param array $config Auth-specific parameters + * @return void + */ + public function __construct($host = '127.0.0.1', $port = null, $config = null) + { + if (is_array($config)) { + if (isset($config['username'])) { + $this->_username = $config['username']; + } + if (isset($config['password'])) { + $this->_password = $config['password']; + } + } + + parent::__construct($host, $port, $config); + } + + + /** + * Perform PLAIN authentication with supplied credentials + * + * @return void + */ + public function auth() + { + // Ensure AUTH has not already been initiated. + parent::auth(); + + $this->_send('AUTH PLAIN'); + $this->_expect(334); + $this->_send(base64_encode("\0" . $this->_username . "\0" . $this->_password)); + $this->_expect(235); + $this->_auth = true; + } +} |