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