- Backported r5598:r5599 from trunk
| | |
| | | * @param string $sort_field Header field to sort by |
| | | * @return array search results as list of message IDs |
| | | * @access public |
| | | * @todo: Search criteria should be provided in non-IMAP format, eg. array |
| | | */ |
| | | function search($mailbox='', $str=NULL, $charset=NULL, $sort_field=NULL) |
| | | { |
| | |
| | | $string_offset = $m[1] + strlen($m[0]) + 4; // {}\r\n |
| | | $string = substr($str, $string_offset - 1, $m[0]); |
| | | $string = rcube_charset_convert($string, $charset, $dest_charset); |
| | | if (!$string) |
| | | if ($string === false) |
| | | continue; |
| | | $res .= sprintf("%s{%d}\r\n%s", substr($str, $last, $m[1] - $last - 1), strlen($string), $string); |
| | | $res .= substr($str, $last, $m[1] - $last - 1) . rcube_imap_generic::escape($string); |
| | | $last = $m[0] + $string_offset - 1; |
| | | } |
| | | if ($last < strlen($str)) |
| | |
| | | // list images after mail body |
| | | if ($CONFIG['inline_images'] && !empty($MESSAGE->attachments)) { |
| | | foreach ($MESSAGE->attachments as $attach_prop) { |
| | | // skip inline images |
| | | if ($attach_prop->content_id && $attach_prop->disposition == 'inline') { |
| | | continue; |
| | | } |
| | | |
| | | // Content-Type: image/*... |
| | | if (preg_match('/^image\//i', $attach_prop->mimetype) || |
| | | // ...or known file extension: many clients are using application/octet-stream |