Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 36 additions & 36 deletions bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ function imap_reopen($imap, $mailbox, $flags = 0, $retries = 0)
if (!function_exists('imap2_reopen')) {
function imap2_reopen($imap, $mailbox, $flags = 0, $retries = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_reopen($imap, $mailbox, $flags, $retries);
}

Expand All @@ -285,7 +285,7 @@ function imap_ping($imap)
if (!function_exists('imap2_ping')) {
function imap2_ping($imap)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_ping($imap);
}

Expand All @@ -306,7 +306,7 @@ function imap_close($imap, $flags = 0)
if (!function_exists('imap2_close')) {
function imap2_close($imap, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_close($imap, $flags);
}

Expand Down Expand Up @@ -363,7 +363,7 @@ function imap_status($imap, $mailbox, $flags)
if (!function_exists('imap2_status')) {
function imap2_status($imap, $mailbox, $flags)
{
if (IMAP2_RETROFIT_MODE && Functions::isRetrofitResource($imap)) {
if (Functions::isRetrofitConnection($imap)) {
return imap_status($imap, $mailbox, $flags);
}

Expand All @@ -384,7 +384,7 @@ function imap_num_msg($imap)
if (!function_exists('imap2_num_msg')) {
function imap2_num_msg($imap)
{
if (IMAP2_RETROFIT_MODE && Functions::isRetrofitResource($imap)) {
if (Functions::isRetrofitConnection($imap)) {
return imap_num_msg($imap);
}

Expand All @@ -404,7 +404,7 @@ function imap_num_recent($imap)
if (!function_exists('imap2_num_recent')) {
function imap2_num_recent($imap)
{
if (IMAP2_RETROFIT_MODE && Functions::isRetrofitResource($imap)) {
if (Functions::isRetrofitConnection($imap)) {
return imap_num_recent($imap);
}

Expand Down Expand Up @@ -510,7 +510,7 @@ function imap_getmailboxes($imap, $reference, $pattern)
if (!function_exists('imap2_getmailboxes')) {
function imap2_getmailboxes($imap, $reference, $pattern)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_getmailboxes($imap, $reference, $pattern);
}

Expand Down Expand Up @@ -614,7 +614,7 @@ function imap_createmailbox($imap, $mailbox)
if (!function_exists('imap2_createmailbox')) {
function imap2_createmailbox($imap, $mailbox)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_createmailbox($imap, $mailbox);
}

Expand All @@ -634,7 +634,7 @@ function imap_create($imap, $mailbox)
if (!function_exists('imap2_create')) {
function imap2_create($imap, $mailbox)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_create($imap, $mailbox);
}

Expand All @@ -654,7 +654,7 @@ function imap_deletemailbox($imap, $mailbox)
if (!function_exists('imap2_deletemailbox')) {
function imap2_deletemailbox($imap, $mailbox)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_deletemailbox($imap, $mailbox);
}

Expand Down Expand Up @@ -706,7 +706,7 @@ function imap_mailboxmsginfo($imap)
if (!function_exists('imap2_mailboxmsginfo')) {
function imap2_mailboxmsginfo($imap)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_mailboxmsginfo($imap);
}

Expand All @@ -726,14 +726,14 @@ function imap_search($imap, $criteria, $flags = SE_FREE, $charset = "")
if (!function_exists('imap2_search')) {
function imap2_search($imap, $criteria, $flags = SE_FREE, $charset = "")
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
if (empty($charset)) {
return imap_search($imap, $criteria, $flags);
} else {
return imap_search($imap, $criteria, $flags, $charset);
}
}

return Message::search($imap, $criteria, $flags, $charset);
}
}
Expand All @@ -750,7 +750,7 @@ function imap_headers($imap)
if (!function_exists('imap2_headers')) {
function imap2_headers($imap)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_headers($imap);
}

Expand All @@ -770,7 +770,7 @@ function imap_msgno($imap, $messageUid)
if (!function_exists('imap2_msgno')) {
function imap2_msgno($imap, $messageUid)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_msgno($imap, $messageUid);
}

Expand All @@ -790,7 +790,7 @@ function imap_uid($imap, $messageNum)
if (!function_exists('imap2_uid')) {
function imap2_uid($imap, $messageNum)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_uid($imap, $messageNum);
}

Expand All @@ -810,14 +810,14 @@ function imap_sort($imap, $criteria, $reverse, $flags = 0, $searchCriteria = nul
if (!function_exists('imap2_sort')) {
function imap2_sort($imap, $criteria, $reverse, $flags = 0, $searchCriteria = null, $charset = null)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
if (empty($charset)) {
return imap_sort($imap, $criteria, $reverse, $flags, $searchCriteria);
} else {
return imap_sort($imap, $criteria, $reverse, $flags, $searchCriteria, $charset);
}
}

return Message::sort($imap, $criteria, $reverse, $flags, $searchCriteria, $charset);
}
}
Expand All @@ -834,7 +834,7 @@ function imap_append($imap, $folder, $message, $options = null, $internalDate =
if (!function_exists('imap2_append')) {
function imap2_append($imap, $folder, $message, $options = null, $internalDate = null)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_append($imap, $folder, $message, $options, $internalDate);
}

Expand All @@ -854,8 +854,8 @@ function imap_headerinfo($imap, $messageNum, $fromLength = 0, $subjectLength = 0
if (!function_exists('imap2_headerinfo')) {
function imap2_headerinfo($imap, $messageNum, $fromLength = 0, $subjectLength = 0, $defaultHost = null)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
return imap_headerinfo($imap, $messageNum, $fromLength, $subjectLength, $defaultHost);
if (Functions::isRetrofitConnection($imap)) {
return imap_headerinfo($imap, $messageNum, $fromLength, $subjectLength);
}

return Message::headerInfo($imap, $messageNum, $fromLength, $subjectLength, $defaultHost);
Expand Down Expand Up @@ -890,7 +890,7 @@ function imap_body($imap, $messageNum, $flags = 0)
if (!function_exists('imap2_body')) {
function imap2_body($imap, $messageNum, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && Functions::isRetrofitResource($imap)) {
if (Functions::isRetrofitConnection($imap)) {
return imap_body($imap, $messageNum, $flags);
}

Expand All @@ -910,7 +910,7 @@ function imap_fetchtext($imap, $messageNum, $flags = 0)
if (!function_exists('imap2_fetchtext')) {
function imap2_fetchtext($imap, $messageNum, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && Functions::isRetrofitResource($imap)) {
if (Functions::isRetrofitConnection($imap)) {
return imap_fetchtext($imap, $messageNum, $flags);
}

Expand All @@ -930,7 +930,7 @@ function imap_fetchbody($imap, $messageNum, $section, $flags = 0)
if (!function_exists('imap2_fetchbody')) {
function imap2_fetchbody($imap, $messageNum, $section, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && Functions::isRetrofitResource($imap)) {
if (Functions::isRetrofitConnection($imap)) {
return imap_fetchbody($imap, $messageNum, $section, $flags);
}

Expand All @@ -950,7 +950,7 @@ function imap_bodystruct($imap, $messageNum, $section)
if (!function_exists('imap2_bodystruct')) {
function imap2_bodystruct($imap, $messageNum, $section)
{
if (IMAP2_RETROFIT_MODE && Functions::isRetrofitResource($imap)) {
if (Functions::isRetrofitConnection($imap)) {
return imap_bodystruct($imap, $messageNum, $section);
}

Expand All @@ -970,7 +970,7 @@ function imap_savebody($imap, $file, $messageNum, $section = "", $flags = 0)
if (!function_exists('imap2_savebody')) {
function imap2_savebody($imap, $file, $messageNum, $section = "", $flags = 0)
{
if (IMAP2_RETROFIT_MODE && Functions::isRetrofitResource($imap)) {
if (Functions::isRetrofitConnection($imap)) {
return imap_savebody($imap, $file, $messageNum, $section, $flags);
}

Expand All @@ -990,7 +990,7 @@ function imap_fetchstructure($imap, $messageNum, $flags = 0)
if (!function_exists('imap2_fetchstructure')) {
function imap2_fetchstructure($imap, $messageNum, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_fetchstructure($imap, $messageNum, $flags);
}

Expand All @@ -1010,7 +1010,7 @@ function imap_fetchheader($imap, $messageNum, $flags = 0)
if (!function_exists('imap2_fetchheader')) {
function imap2_fetchheader($imap, $messageNum, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_fetchheader($imap, $messageNum, $flags);
}

Expand All @@ -1030,7 +1030,7 @@ function imap_fetch_overview($imap, $sequence, $flags = 0)
if (!function_exists('imap2_fetch_overview')) {
function imap2_fetch_overview($imap, $sequence, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_fetch_overview($imap, $sequence, $flags);
}

Expand All @@ -1050,7 +1050,7 @@ function imap_fetchmime($imap, $messageNum, $section, $flags = 0)
if (!function_exists('imap2_fetchmime')) {
function imap2_fetchmime($imap, $messageNum, $section, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_fetchmime($imap, $messageNum, $section, $flags);
}

Expand All @@ -1070,7 +1070,7 @@ function imap_delete($imap, $messageNums, $flags = 0)
if (!function_exists('imap2_delete')) {
function imap2_delete($imap, $messageNums, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_delete($imap, $messageNums, $flags);
}

Expand All @@ -1090,7 +1090,7 @@ function imap_undelete($imap, $messageNums, $flags = 0)
if (!function_exists('imap2_undelete')) {
function imap2_undelete($imap, $messageNums, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_undelete($imap, $messageNums, $flags);
}

Expand All @@ -1110,7 +1110,7 @@ function imap_clearflag_full($imap, $sequence, $flag, $options = 0)
if (!function_exists('imap2_clearflag_full')) {
function imap2_clearflag_full($imap, $sequence, $flag, $options = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_clearflag_full($imap, $sequence, $flag, $options);
}

Expand All @@ -1130,7 +1130,7 @@ function imap_setflag_full($imap, $sequence, $flag, $options = 0)
if (!function_exists('imap2_setflag_full')) {
function imap2_setflag_full($imap, $sequence, $flag, $options = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_setflag_full($imap, $sequence, $flag, $options);
}

Expand Down Expand Up @@ -1166,7 +1166,7 @@ function imap_mail_copy($imap, $messageNums, $mailbox, $flags = 0)
if (!function_exists('imap2_mail_copy')) {
function imap2_mail_copy($imap, $messageNums, $mailbox, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_mail_copy($imap, $messageNums, $mailbox, $flags);
}

Expand All @@ -1186,7 +1186,7 @@ function imap_mail_move($imap, $messageNums, $mailbox, $flags = 0)
if (!function_exists('imap2_mail_move')) {
function imap2_mail_move($imap, $messageNums, $mailbox, $flags = 0)
{
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
if (Functions::isRetrofitConnection($imap)) {
return imap_mail_move($imap, $messageNums, $mailbox, $flags);
}

Expand Down
5 changes: 5 additions & 0 deletions src/Connection.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,11 @@ protected function connect()

if (empty($this->currentMailbox)) {
$mailboxes = $this->client->listMailboxes('', '*');

if ($mailboxes === false) {
return false;
}

if (in_array('INBOX', $mailboxes)) {
$this->currentMailbox = 'INBOX';
$this->mailbox .= 'INBOX';
Expand Down
12 changes: 5 additions & 7 deletions src/Functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public static function writeAddressFromEnvelope($addressList)

$sanitizedAddress = [];
foreach ($addressList as $addressEntry) {
$parsedAddressEntry = imap_rfc822_write_address($addressEntry[2], $addressEntry[3], $addressEntry[0]);
$parsedAddressEntry = imap_rfc822_write_address($addressEntry[2], $addressEntry[3], $addressEntry[0] ?? '');
if (substr($parsedAddressEntry, -3) == '@""') {
$parsedAddressEntry = substr($parsedAddressEntry, 0, strlen($parsedAddressEntry) - 3).': ';
}
Expand Down Expand Up @@ -151,9 +151,8 @@ public static function getListAttributesValue($attributes)
return $attributesValue;
}

public static function isValidImap1Connection($imap)
{
return is_resource($imap) && get_resource_type($imap) == 'imap';
public static function isValidImap1Connection($imap) {
return (is_resource($imap) && get_resource_type($imap) == 'imap') || is_a($imap, 'IMAP\Connection');
}

public static function isValidImap2Connection($imap)
Expand Down Expand Up @@ -191,8 +190,7 @@ public static function isBackportCall($backtrace, $depth)
&& substr($backtrace[$depth + 1]['function'], 4) == substr($backtrace[$depth]['function'], 5);
}

public static function isRetrofitResource($imap)
{
return is_resource($imap) && get_resource_type($imap) == 'imap';
public static function isRetrofitConnection($imap) {
return IMAP2_RETROFIT_MODE && self::isValidImap1Connection($imap);
}
}
2 changes: 1 addition & 1 deletion src/HeaderInfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public static function fromMessage($message, $defaultHost)

protected static function parseAddressList($address, $defaultHost)
{
$addressList = imap_rfc822_parse_adrlist($address, $defaultHost);
$addressList = imap_rfc822_parse_adrlist($address ?? '', $defaultHost ?? '');
$customAddressList = [];

foreach ($addressList as $objectEntry) {
Expand Down
2 changes: 1 addition & 1 deletion src/Mailbox.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public static function check($imap)
'Recent' => intval($status['RECENT']),
];

} elseif (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
} elseif (Functions::isRetrofitConnection($imap)) {
return imap_check($imap);
}

Expand Down
Loading