diff --git a/src/Fetch/Message.php b/src/Fetch/Message.php
index 4b202af..3755869 100644
--- a/src/Fetch/Message.php
+++ b/src/Fetch/Message.php
@@ -432,19 +432,16 @@ class Message
$attachment = new Attachment($this, $structure, $partIdentifier);
$this->attachments[] = $attachment;
} elseif ($structure->type == 0 || $structure->type == 1) {
- if($partIdentifier !== null) {
- $section = is_int($structure->ifsubtype) ? (string)$partIdentifier.".".$structure->ifsubtype : $partIdentifier;
- $messageBody = imap_fetchbody($this->imapStream, $this->uid, $section, FT_UID);
- } else {
- $messageBody = imap_body($this->imapStream, $this->uid, FT_UID);
- }
+ $messageBody = isset($partIdentifier) ?
+ imap_fetchbody($this->imapStream, $this->uid, $partIdentifier, FT_UID)
+ : imap_body($this->imapStream, $this->uid, FT_UID);
$messageBody = self::decode($messageBody, $structure->encoding);
if (!empty($parameters['charset']) && $parameters['charset'] !== self::$charset)
$messageBody = iconv($parameters['charset'], self::$charset, $messageBody);
- if (strtolower($structure->subtype) == 'plain' || $structure->type == 1) {
+ if (strtolower($structure->subtype) === 'plain' || ($structure->type == 1 && strtolower($structure->subtype) !== 'alternative')) {
if (isset($this->plaintextMessage)) {
$this->plaintextMessage .= PHP_EOL . PHP_EOL;
} else {
@@ -453,7 +450,6 @@ class Message
$this->plaintextMessage .= trim($messageBody);
} else {
-
if (isset($this->htmlMessage)) {
$this->htmlMessage .= '
';
} else {