$topline = array_shift($data);
while (! ereg('\* [0-9]+ FETCH ', $topline) && data)
$topline = array_shift($data);
- while ($data)
- $wholemessage .= array_shift($data);
+ $wholemessage = implode('', $data);
if (ereg('\{([^\}]*)\}', $topline, $regs)) {
return substr($wholemessage, 0, $regs[1]);
return "Body retrival error, please report this bug!\n\nTop line is \"$topline\"\n";
}
+ function mime_print_body_lines ($imap_stream, $id, $ent_id, $encoding) {
+ // do a bit of error correction. If we couldn't find the entity id, just guess
+ // that it is the first one. That is usually the case anyway.
+ if (!$ent_id) $ent_id = 1;
+
+ fputs ($imap_stream, "a001 FETCH $id BODY[$ent_id]\r\n");
+ $cnt = 0;
+ $continue = true;
+ $read = fgets ($imap_stream,4096);
+ while (!ereg("^a001 (OK|BAD|NO)(.*)$", $read, $regs)) {
+ if (trim($read) == ")==") {
+ $read1 = $read;
+ $read = fgets ($imap_stream,4096);
+ if (ereg("^a001 (OK|BAD|NO)(.*)$", $read, $regs)) {
+ return;
+ } else {
+ echo decodeBody($read1, $encoding);
+ echo decodeBody($read, $encoding);
+ }
+ } else if ($cnt) {
+ echo decodeBody($read, $encoding);
+ }
+ $read = fgets ($imap_stream,4096);
+ $cnt++;
+ }
+ }
+
/* -[ END MIME DECODING ]----------------------------------------------------------- */
$replace = ereg_replace("_", " ", $res[3]);
// Convert lowercase Quoted Printable to uppercase for
// quoted_printable_decode to understand it.
- while (ereg("(=([0-9][a-f])|([a-f][0-9])|([a-f][0-9]))", $replace, $res)) {
+ while (ereg("(=([0-9][abcdef])|([abcdef][0-9])|([abcdef][abcdef]))", $replace, $res)) {
$replace = str_replace($res[1], strtoupper($res[1]), $replace);
}
$replace = quoted_printable_decode($replace);
$string = str_replace("_", "=5F", $string);
$string = str_replace(" ", "_", $string);
-
- while (ereg("([\200-\377])", $string, $regs)) {
- $replace = $regs[1];
- $insert = "=" . strtoupper(bin2hex($replace));
+ for ( $ch = 127 ; $ch <= 255 ; $ch++ ) {
+ $replace = chr($ch);
+ $insert = sprintf("=%02X", $ch);
$string = str_replace($replace, $insert, $string);
+ $ch++;
}
$newstring = "=?$default_charset?Q?".$string."?=";