Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
22 / 22
100.00% covered (success)
100.00%
13 / 13
CRAP
100.00% covered (success)
100.00%
1 / 1
AbstractMailClient
100.00% covered (success)
100.00%
22 / 22
100.00% covered (success)
100.00%
13 / 13
14
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 getHost
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getPort
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getService
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getUsername
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getPassword
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getFolder
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setHost
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setPort
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setService
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setUsername
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setPassword
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setFolder
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * Pop PHP Framework (http://www.popphp.org/)
4 *
5 * @link       https://github.com/popphp/popphp-framework
6 * @author     Nick Sagona, III <dev@nolainteractive.com>
7 * @copyright  Copyright (c) 2009-2024 NOLA Interactive, LLC. (http://www.nolainteractive.com)
8 * @license    http://www.popphp.org/license     New BSD License
9 */
10
11/**
12 * @namespace
13 */
14namespace Pop\Mail\Client;
15
16/**
17 * Abstract mail client class
18 *
19 * @category   Pop
20 * @package    Pop\Mail
21 * @author     Nick Sagona, III <dev@nolainteractive.com>
22 * @copyright  Copyright (c) 2009-2024 NOLA Interactive, LLC. (http://www.nolainteractive.com)
23 * @license    http://www.popphp.org/license     New BSD License
24 * @version    4.0.0
25 */
26abstract class AbstractMailClient implements MailClientInterface
27{
28
29    /**
30     * Mail client host
31     * @var ?string
32     */
33    protected ?string $host = null;
34
35    /**
36     * Mail client port
37     * @var int|string|null
38     */
39    protected int|string|null $port = null;
40
41    /**
42     * Mail client service (pop, imap, nntp, etc.)
43     * @var ?string
44     */
45    protected ?string $service = null;
46
47    /**
48     * Username
49     * @var string
50     */
51    protected string $username = '';
52
53    /**
54     * Password
55     * @var string
56     */
57    protected string $password = '';
58
59    /**
60     * Current folder
61     * @var string
62     */
63    protected string $folder = '';
64
65    /**
66     * Constructor
67     *
68     * Instantiate the mail client object
69     *
70     * @param string     $host
71     * @param int|string $port
72     * @param ?string    $service
73     */
74    public function __construct(string $host, int|string $port, ?string $service = null)
75    {
76        $this->setHost($host);
77        $this->setPort($port);
78        if ($service !== null) {
79            $this->setService($service);
80        }
81    }
82
83    /**
84     * Get mail client host
85     *
86     * @return ?string
87     */
88    public function getHost(): ?string
89    {
90        return $this->host;
91    }
92
93    /**
94     * Get mail client port
95     *
96     * @return int|string|null
97     */
98    public function getPort(): int|string|null
99    {
100        return $this->port;
101    }
102
103    /**
104     * Get mail client service
105     *
106     * @return ?string
107     */
108    public function getService(): ?string
109    {
110        return $this->service;
111    }
112
113    /**
114     * Get username
115     *
116     * @return string
117     */
118    public function getUsername(): string
119    {
120        return $this->username;
121    }
122
123    /**
124     * Get password
125     *
126     * @return string
127     */
128    public function getPassword(): string
129    {
130        return $this->password;
131    }
132
133    /**
134     * Get folder
135     *
136     * @return string
137     */
138    public function getFolder(): string
139    {
140        return $this->folder;
141    }
142
143    /**
144     * Set mail client host
145     *
146     * @param  string $host
147     * @return AbstractMailClient
148     */
149    public function setHost(string $host): AbstractMailClient
150    {
151        $this->host = $host;
152        return $this;
153    }
154
155    /**
156     * Set mail client port
157     *
158     * @param  int|string $port
159     * @return AbstractMailClient
160     */
161    public function setPort(int|string$port): AbstractMailClient
162    {
163        $this->port = $port;
164        return $this;
165    }
166
167    /**
168     * Set mail client service
169     *
170     * @param  string $service
171     * @return AbstractMailClient
172     */
173    public function setService(string $service): AbstractMailClient
174    {
175        $this->service = $service;
176        return $this;
177    }
178
179    /**
180     * Set username
181     *
182     * @param  string $username
183     * @return AbstractMailClient
184     */
185    public function setUsername(string $username): AbstractMailClient
186    {
187        $this->username = $username;
188        return $this;
189    }
190
191    /**
192     * Set password
193     *
194     * @param  string $password
195     * @return AbstractMailClient
196     */
197    public function setPassword(string $password): AbstractMailClient
198    {
199        $this->password = $password;
200        return $this;
201    }
202
203    /**
204     * Set folder
205     *
206     * @param  string $folder
207     * @return AbstractMailClient
208     */
209    public function setFolder(string $folder): AbstractMailClient
210    {
211        $this->folder = $folder;
212        return $this;
213    }
214
215}