Skip to content

Commit c2688bd

Browse files
coverage
1 parent 73576e0 commit c2688bd

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

bootstrap.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,12 +197,16 @@ function imap2_open($mailbox, $user, $password, $flags = 0, $retries = 0, $optio
197197
if (!function_exists('imap_reopen')) {
198198
function imap_reopen($imap, $mailbox, $flags = 0, $retries = 0)
199199
{
200-
return Connection::reopen($imap, $mailbox, $flags, $retries);
200+
return imap2_reopen($imap, $mailbox, $flags, $retries);
201201
}
202202
}
203203
if (!function_exists('imap2_reopen')) {
204204
function imap2_reopen($imap, $mailbox, $flags = 0, $retries = 0)
205205
{
206+
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
207+
return imap_reopen($imap, $mailbox, $flags, $retries);
208+
}
209+
206210
return Connection::reopen($imap, $mailbox, $flags, $retries);
207211
}
208212
}

src/Connection.php

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,27 @@ class Connection
3232
*/
3333
public function __construct($mailbox, $user, $password, $flags = 0, $retries = 0, $options = [])
3434
{
35-
$this->mailbox = $mailbox;
3635
$this->user = $user;
3736
$this->password = $password;
3837
$this->flags = $flags;
3938
$this->retries = $retries;
4039
$this->options = $options;
4140

41+
$this->openMailbox($mailbox);
42+
43+
$this->client = new ImapClient();
44+
}
45+
46+
public function openMailbox($mailbox)
47+
{
48+
$this->mailbox = $mailbox;
49+
4250
$mailboxParts = Functions::parseMailboxString($mailbox);
4351

4452
$this->host = Functions::getHostFromMailbox($mailboxParts);
4553
$this->port = $mailboxParts['port'];
4654
$this->sslMode = Functions::getSslModeFromMailbox($mailboxParts);
4755
$this->currentMailbox = $mailboxParts['mailbox'];
48-
49-
$this->client = new ImapClient();
5056
}
5157

5258
/**
@@ -70,13 +76,15 @@ public static function open($mailbox, $user, $password, $flags = 0, $retries = 0
7076

7177
public static function reopen($imap, $mailbox, $flags = 0, $retries = 0)
7278
{
73-
if (is_a($imap, Connection::class)) {
74-
$client = $imap->getClient();
75-
76-
return true;
79+
if (!is_a($imap, Connection::class)) {
80+
return Errors::invalidImapConnection(debug_backtrace(), 1, null);
7781
}
7882

79-
return imap_reopen($imap, $mailbox, $flags, $retries);
83+
$imap->openMailbox($mailbox);
84+
85+
$success = $imap->connect();
86+
87+
return boolval($success);
8088
}
8189

8290
public static function ping($imap)
@@ -157,7 +165,7 @@ public function getHost()
157165
/**
158166
*
159167
*/
160-
public function openMailbox()
168+
public function selectMailbox()
161169
{
162170
$this->client->select($this->currentMailbox);
163171
}

src/Mailbox.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class Mailbox
1616
public static function check($imap)
1717
{
1818
if (is_a($imap, Connection::class)) {
19-
$imap->openMailbox();
19+
$imap->selectMailbox();
2020

2121
$client = $imap->getClient();
2222
$status = $client->status($imap->getMailboxName(), ['MESSAGES', 'RECENT']);
@@ -44,7 +44,7 @@ public static function numMsg($imap)
4444
return Errors::invalidImapConnection(debug_backtrace(), 1, false);
4545
}
4646

47-
$imap->openMailbox();
47+
$imap->selectMailbox();
4848
$client = $imap->getClient();
4949

5050
$status = $client->status($imap->getMailboxName(), ['MESSAGES']);
@@ -56,7 +56,7 @@ public static function numRecent($imap)
5656
{
5757
if (is_a($imap, Connection::class)) {
5858
$client = $imap->getClient();
59-
$imap->openMailbox();
59+
$imap->selectMailbox();
6060

6161
return (object) [
6262
'Driver' => 'imap',

0 commit comments

Comments
 (0)