*
* This file contains functions needed to handle mime messages.
*
- * @copyright 2003-2009 The SquirrelMail Project Team
+ * @copyright 2003-2012 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
$name = $header->getParameter('name');
if(!trim($name)) {
if (!trim( $header->id )) {
- $filename = 'untitled-[' . $this->entity_id . ']' ;
+ $filename = 'untitled-[' . $this->entity_id . ']' . '.' . strtolower($header->type1);
} else {
- $filename = 'cid: ' . $header->id;
+ $filename = 'cid: ' . $header->id . '.' . strtolower($header->type1);
}
} else {
$filename = $name;
$filename = $header->getParameter('name');
if (!trim($filename)) {
if (!trim( $header->id )) {
- $filename = 'untitled-[' . $this->entity_id . ']' ;
+ $filename = 'untitled-[' . $this->entity_id . ']' . '.' . strtolower($header->type1);
} else {
- $filename = 'cid: ' . $header->id;
+ $filename = 'cid: ' . $header->id . '.' . strtolower($header->type1);
}
}
}
$hdr->type0 = 'text';
$hdr->type1 = 'plain';
$hdr->encoding = '7bit';
+ $msg->header = $hdr;
} else {
$msg->header->type0 = 'multipart';
$msg->type0 = 'multipart';
$arg_a[] = $msg->parseLiteral($read, $i);
++$arg_no;
break;
- case '0':
+ case '0':
case is_numeric($read{$i}):
/* process integers */
if ($read{$i} == ' ') { break; }
- ++$arg_no;
- if (preg_match('/^([0-9]+).*/',substr($read,$i), $regs)) {
- $i += strlen($regs[1])-1;
- $arg_a[] = $regs[1];
- } else {
- $arg_a[] = 0;
- }
+ ++$arg_no;
+ if (preg_match('/^([0-9]+).*/',substr($read,$i), $regs)) {
+ $i += strlen($regs[1])-1;
+ $arg_a[] = $regs[1];
+ } else {
+ $arg_a[] = 0;
+ }
break;
case ')':
$multipart = (isset($msg->type0) && ($msg->type0 == 'multipart'));
if ($this->type0 == 'multipart') {
if($this->type1 == 'alternative') {
$msg = $this->findAlternativeEntity($alt_order);
- if (count($msg->entities) == 0) {
- $entity[] = $msg->entity_id;
- } else {
- $entity = $msg->findDisplayEntity($entity, $alt_order, $strict);
+ if ( ! is_null($msg) ) {
+ if (count($msg->entities) == 0) {
+ $entity[] = $msg->entity_id;
+ } else {
+ $entity = $msg->findDisplayEntity($entity, $alt_order, $strict);
+ }
+ $found = true;
}
- $found = true;
} else if ($this->type1 == 'related') { /* RFC 2387 */
$msgs = $this->findRelatedEntity();
foreach ($msgs as $msg) {
/**
* @param array $alt_order
- * @return array
+ * @return entity
*/
function findAlternativeEntity($alt_order) {
/* If we are dealing with alternative parts then we */
/* choose the best viewable message supported by SM. */
$best_view = 0;
- $entity = array();
+ $entity = null;
foreach($this->entities as $ent) {
$type = $ent->header->type0 . '/' . $ent->header->type1;
if ($type == 'multipart/related') {
$type = $ent->header->getParameter('type');
- // Mozilla bug. Mozilla does not provide the parameter type.
- if (!$type) $type = 'text/html';
+ // Mozilla bug. Mozilla does not provide the parameter type.
+ if (!$type) $type = 'text/html';
}
$altCount = count($alt_order);
for ($j = $best_view; $j < $altCount; ++$j) {