Thomas Bruederli
2014-03-25 a8a50de4e3a3f83180c32815a965732fd8171088
program/steps/mail/import.inc
@@ -32,18 +32,19 @@
        if (!$err) {
            // check file content type first
            list($mtype_primary,) = explode('/', rcube_mime::file_content_type($filepath, $_FILES['_file']['name'][$i], $_FILES['_file']['type'][$i]));
            if (!in_array($mtype_primary, array('text','message'))) {
                $OUTPUT->show_message('importmessageerror', 'error');
                continue;
            }
            // read the first few lines to detect header-like structure
            $fp = fopen($filepath, 'r');
            do { $line = fgets($fp); }
            do {
                $line = fgets($fp);
            }
            while ($line !== false && trim($line) == '');
            if (!preg_match('/^From\s+-/', $line) && !preg_match('/^[a-z-_]+:\s+.+/i', $line)) {
                $OUTPUT->show_message('importmessageerror', 'error');
                continue;
            }
@@ -51,7 +52,7 @@
            fseek($fp, 0);
            while (($line = fgets($fp)) !== false) {
                // importing mbox file, split by From - lines
                if (preg_match('/^From\s+-/', $line) && $lastline == '') {
                if (preg_match('/^From\s+-/', $line) && ($lastline == '' || substr($lastline, -2) == '--')) {
                    if (!empty($message)) {
                        if ($RCMAIL->storage->save_message(null, rtrim($message))) {
                            $imported++;
@@ -103,4 +104,3 @@
// send html page with JS calls as response
$OUTPUT->send('iframe');