/zf/library/Zend/Mail/Protocol/Smtp/Auth/Plain.php
PHP | 96 lines | 28 code | 12 blank | 56 comment | 3 complexity | c5c6772d6c1cfbd35d6d65d280345fec MD5 | raw file
Possible License(s): MIT, BSD-3-Clause, Apache-2.0, LGPL-2.1, LGPL-3.0, BSD-2-Clause
1<?php 2/** 3 * Zend Framework 4 * 5 * LICENSE 6 * 7 * This source file is subject to the new BSD license that is bundled 8 * with this package in the file LICENSE.txt. 9 * It is also available through the world-wide-web at this URL: 10 * http://framework.zend.com/license/new-bsd 11 * If you did not receive a copy of the license and are unable to 12 * obtain it through the world-wide-web, please send an email 13 * to license@zend.com so we can send you a copy immediately. 14 * 15 * @category Zend 16 * @package Zend_Mail 17 * @subpackage Protocol 18 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com) 19 * @license http://framework.zend.com/license/new-bsd New BSD License 20 * @version $Id: Plain.php 23775 2011-03-01 17:25:24Z ralph $ 21 */ 22 23 24/** 25 * @see Zend_Mail_Protocol_Smtp 26 */ 27require_once 'Zend/Mail/Protocol/Smtp.php'; 28 29 30/** 31 * Performs PLAIN authentication 32 * 33 * @category Zend 34 * @package Zend_Mail 35 * @subpackage Protocol 36 * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com) 37 * @license http://framework.zend.com/license/new-bsd New BSD License 38 */ 39class Zend_Mail_Protocol_Smtp_Auth_Plain extends Zend_Mail_Protocol_Smtp 40{ 41 /** 42 * PLAIN username 43 * 44 * @var string 45 */ 46 protected $_username; 47 48 49 /** 50 * PLAIN password 51 * 52 * @var string 53 */ 54 protected $_password; 55 56 57 /** 58 * Constructor. 59 * 60 * @param string $host (Default: 127.0.0.1) 61 * @param int $port (Default: null) 62 * @param array $config Auth-specific parameters 63 * @return void 64 */ 65 public function __construct($host = '127.0.0.1', $port = null, $config = null) 66 { 67 if (is_array($config)) { 68 if (isset($config['username'])) { 69 $this->_username = $config['username']; 70 } 71 if (isset($config['password'])) { 72 $this->_password = $config['password']; 73 } 74 } 75 76 parent::__construct($host, $port, $config); 77 } 78 79 80 /** 81 * Perform PLAIN authentication with supplied credentials 82 * 83 * @return void 84 */ 85 public function auth() 86 { 87 // Ensure AUTH has not already been initiated. 88 parent::auth(); 89 90 $this->_send('AUTH PLAIN'); 91 $this->_expect(334); 92 $this->_send(base64_encode("\0" . $this->_username . "\0" . $this->_password)); 93 $this->_expect(235); 94 $this->_auth = true; 95 } 96}