Aleksander Machniak
2012-06-06 bdb40d39bd7921a97e530dac3ef0759a6752b5c6
Add workaround for invalid BODYSTRUCTURE response - parse message with Mail_mimeDecode package (#1485585)
2 files modified
14 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/include/rcube_imap.php 13 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Add workaround for invalid BODYSTRUCTURE response - parse message with Mail_mimeDecode package (#1485585)
- Decode header value in rcube_mime::get() by default (#1488511)
- Fix errors with enabled PHP magic_quotes_sybase option (#1488506)
- Fix SQL query for contacts listing on MS SQL Server (#1488505)
program/include/rcube_imap.php
@@ -1635,11 +1635,24 @@
                $structure[1] = $m[2];
            }
            else {
                // Try to parse the message using Mail_mimeDecode package
                // We need a better solution, Mail_mimeDecode parses message
                // in memory, which wouldn't work for very big messages,
                // (it uses up to 10x more memory than the message size)
                // it's also buggy and not actively developed
                if ($headers->size && rcube_utils::mem_check($headers->size * 10)) {
                    $raw_msg = $this->get_raw_body($uid);
                    $struct = rcube_mime::parse_message($raw_msg);
                }
                else {
                return $headers;
            }
        }
        }
        if (empty($struct)) {
        $struct = $this->structure_part($structure, 0, '', $headers);
        }
        // don't trust given content-type
        if (empty($struct->parts) && !empty($headers->ctype)) {