public function recurse($messageParts, $prefix = '', $index = 1, $fullPrefix = true)
 {
     foreach ($messageParts as $part) {
         $partNumber = $prefix . $index;
         if ($part->type == 0) {
             if ($part->subtype == 'PLAIN') {
                 $this->bodyPlain .= $this->getPart($partNumber, $part->encoding);
             } else {
                 $this->bodyHTML .= $this->getPart($partNumber, $part->encoding);
             }
         } elseif ($part->type == 2) {
             $msg = new TBGIncomingEmailMessage($this->connection, $this->messageNumber);
             $msg->recurse($part->parts, $partNumber . '.', 0, false);
             $this->attachments[] = array('type' => $part->type, 'subtype' => $part->subtype, 'filename' => '', 'data' => $msg, 'inline' => false);
         } elseif (isset($part->parts)) {
             if ($fullPrefix) {
                 $this->recurse($part->parts, $prefix . $index . '.');
             } else {
                 $this->recurse($part->parts, $prefix);
             }
         } elseif ($part->type > 2) {
             if (isset($part->id)) {
                 $id = str_replace(array('<', '>'), '', $part->id);
                 $this->attachments[$id] = array('type' => $part->type, 'subtype' => $part->subtype, 'filename' => $this->getFilenameFromPart($part), 'data' => $this->getPart($partNumber, $part->encoding), 'inline' => true);
             } else {
                 $this->attachments[] = array('type' => $part->type, 'subtype' => $part->subtype, 'filename' => $this->getFilenameFromPart($part), 'data' => $this->getPart($partNumber, $part->encoding), 'inline' => false);
             }
         }
         $index++;
     }
 }
 /**
  * Takes an email object and looks up details for this particular email
  * Returns the primary body and the mime type
  * Sets the message for deletion when chosen to do not keep emails 
  * 
  * @param stdObject $email
  * @return TBGIncomingEmailMessage the message
  */
 public function getMessage($email)
 {
     $message = new TBGIncomingEmailMessage($this->_connection, $email->msgno);
     $is_structure = $message->fetch();
     if ($is_structure && !$this->doesKeepEmails()) {
         imap_delete($this->_connection, $email->msgno);
     }
     return $message;
 }