/library/Zend/Mail/Protocol/Smtp/Auth/Login.php
PHP | 98 lines | 30 code | 12 blank | 56 comment | 3 complexity | efc90b079f14dfa496f3a1318841c5d4 MD5 | raw file
Possible License(s): AGPL-1.0
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-2012 Zend Technologies USA Inc. (http://www.zend.com)
19 * @license http://framework.zend.com/license/new-bsd New BSD License
20 * @version $Id: Login.php 24594 2012-01-05 21:27:01Z matthew $
21 */
22
23
24/**
25 * @see Zend_Mail_Protocol_Smtp
26 */
27require_once 'Zend/Mail/Protocol/Smtp.php';
28
29
30/**
31 * Performs LOGIN authentication
32 *
33 * @category Zend
34 * @package Zend_Mail
35 * @subpackage Protocol
36 * @copyright Copyright (c) 2005-2012 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_Login extends Zend_Mail_Protocol_Smtp
40{
41 /**
42 * LOGIN username
43 *
44 * @var string
45 */
46 protected $_username;
47
48
49 /**
50 * LOGIN 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 LOGIN 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 LOGIN');
91 $this->_expect(334);
92 $this->_send(base64_encode($this->_username));
93 $this->_expect(334);
94 $this->_send(base64_encode($this->_password));
95 $this->_expect(235);
96 $this->_auth = true;
97 }
98}