Skip to content

Commit 001499a

Browse files
fix imap_body
1 parent 63d2f52 commit 001499a

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/BodyStructure.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,12 @@ protected static function processSubPartAsMessage($item)
207207
];
208208

209209
foreach ($item[8] as $itemPart) {
210+
if (!is_array($itemPart[2])) {
211+
continue;
212+
}
213+
214+
$parameters = self::extractParameters($itemPart[2], []);
215+
210216
$part = (object) [
211217
'type' => 0,
212218
'encoding' => 0,
@@ -219,23 +225,25 @@ protected static function processSubPartAsMessage($item)
219225
'ifdisposition' => 0,
220226
'ifdparameters' => 0,
221227
'ifparameters' => 1,
222-
'parameters' => []
228+
'parameters' => $parameters
223229
];
224230

225-
if (isset($itemPart[][0])) {
231+
$dispositionParametersIndex = 9;
232+
233+
if (isset($itemPart[$dispositionParametersIndex][0])) {
226234
$attribute = null;
227235
$dispositionParameters = [];
228-
$part->disposition = $item[$dispositionIndex][0];
229-
if (isset($item[$dispositionIndex][1]) && is_array($item[$dispositionIndex][1])) {
230-
foreach ($item[$dispositionIndex][1] as $value) {
236+
$part->disposition = $itemPart[$dispositionParametersIndex][0];
237+
if (isset($itemPart[$dispositionParametersIndex][1]) && is_array($itemPart[$dispositionParametersIndex][1])) {
238+
foreach ($itemPart[$dispositionParametersIndex][1] as $value) {
231239
if (empty($attribute)) {
232240
$attribute = [
233241
'attribute' => $value,
234242
'value' => null,
235243
];
236244
} else {
237245
$attribute['value'] = $value;
238-
$dispositionParameters[] = (object)$attribute;
246+
$dispositionParameters[] = (object) $attribute;
239247
$attribute = null;
240248
}
241249
}

0 commit comments

Comments
 (0)