Skip to content

Commit 387bcf8

Browse files
fix imap_body
1 parent 065f7cd commit 387bcf8

File tree

4 files changed

+24
-11
lines changed

4 files changed

+24
-11
lines changed

bootstrap.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,10 @@ function imap_body($imap, $messageNum, $flags = 0)
832832
if (!function_exists('imap2_body')) {
833833
function imap2_body($imap, $messageNum, $flags = 0)
834834
{
835+
if (IMAP2_RETROFIT_MODE && is_resource($imap) && get_resource_type($imap) == 'imap') {
836+
return imap_body($imap, $messageNum, $flags);
837+
}
838+
835839
return Message::body($imap, $messageNum, $flags);
836840
}
837841
}

src/Message.php

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,22 +105,20 @@ public static function headers($imap, $messageNum, $fromLength = 0, $subjectLeng
105105
return imap_headerinfo($imap, $messageNum, $fromLength = 0, $subjectLength = 0);
106106
}
107107

108-
public static function body($imap, $messageNum, $section, $flags = 0)
108+
public static function body($imap, $messageNum, $flags = 0)
109109
{
110-
if (is_a($imap, Connection::class)) {
111-
$client = $imap->getClient();
112-
#$client->setDebug(true);
110+
if (!is_a($imap, Connection::class)) {
111+
return Errors::invalidImapConnection(debug_backtrace(), 1, false);
112+
}
113113

114-
$messages = $client->fetch($imap->getMailboxName(), $messageNum, false, ['BODY['.$section.']']);
114+
$client = $imap->getClient();
115+
#$client->setDebug(true);
115116

116-
if ($section) {
117-
return $messages[$messageNum]->bodypart[$section];
118-
}
117+
$isUid = boolval($flags & FT_UID);
119118

120-
return $messages[$messageNum]->body;
121-
}
119+
$messages = $client->fetch($imap->getMailboxName(), $messageNum, $isUid, ['BODY[TEXT]']);
122120

123-
return imap_fetchbody($imap, $messageNum, $section, $flags);
121+
return $messages[$messageNum]->bodypart['TEXT'];
124122
}
125123

126124
public static function fetchBody($imap, $messageNum, $section, $flags = 0)

tests/.env.examples

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
IMAP_MAILBOX={imap.gmail.com:993/ssl/novalidate-cert}
2+
3+
IMAP_PASSWORD=...
4+
IMAP_ACCESS_TOKEN=...

tests/CompatibilityTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,11 @@ public function testNumMsg()
575575

576576
$this->assertEquals($numMsg1, $numMsg2);
577577

578+
$lastMessageBody1 = imap_body($imap1, $numMsg1);
579+
$lastMessageBody2 = imap2_body($imap2, $numMsg2);
580+
581+
$this->assertEquals($lastMessageBody1, $lastMessageBody2);
582+
578583
imap_close($imap1);
579584
imap2_close($imap2);
580585
}
@@ -653,4 +658,6 @@ public function testPing()
653658
imap_close($imap1);
654659
imap2_close($imap2);
655660
}
661+
662+
656663
}

0 commit comments

Comments
 (0)