". _("Download this as a file") ."

"; /** Display the ATTACHMENTS: message if there's more than one part **/ if (count($message["ENTITIES"]) > 1) { $body .= "
"; $body .= "ATTACHMENTS:"; $body .= "
"; $num = 0; for ($i = 0; $i < count($message["ENTITIES"]); $i++) { /** If we've displayed this entity, go to the next one **/ if ($ent_num == $i) continue; $type0 = strtolower($message["ENTITIES"][$i]["TYPE0"]); $type1 = strtolower($message["ENTITIES"][$i]["TYPE1"]); $num++; $filename = $message["ENTITIES"][$i]["FILENAME"]; if (trim($filename) == "") { $display_filename = "untitled$i"; } else { $display_filename = $filename; } $urlMailbox = urlencode($message["INFO"]["MAILBOX"]); $id = $message["INFO"]["ID"]; $body .= "   " . $display_filename . "  (TYPE: $type0/$type1)
"; } $body .= "
"; } return $body; } /** this function decodes the body depending on the encoding type. **/ function decodeBody($body, $encoding) { $encoding = strtolower($encoding); if ($encoding == "quoted-printable") { $body = quoted_printable_decode($body); while (ereg("=\n", $body)) $body = ereg_replace ("=\n", "", $body); } else if ($encoding == "base64") { $body = base64_decode($body); } // All other encodings are returned raw. return $body; } // This functions decode strings that is encoded according to // RFC1522 (MIME Part Two: Message Header Extensions for Non-ASCII Text). function decodeHeader ($string) { // Recognizing only US-ASCII and ISO-8859. Other charsets should // probably be recognized as well. if (eregi('=\?(us-ascii|iso-8859-([0-9])+)\?(q|b)\?([^?]+)\?=', $string, $res)) { if (ucfirst($res[3]) == "B") { $replace = base64_decode($res[4]); } else { $replace = ereg_replace("_", " ", $res[4]); $replace = quoted_printable_decode($replace); } // All HTML characters are in the 7-bit ASCII range and can // be replaced before doing anything with the 8-bi // characters. $replace = htmlspecialchars($replace); if ($res[2] == 1) { // This if clause is debug code. -- gustavf // Latin small letter o with stroke while (ereg("\370", $replace)) $replace = ereg_replace ("\370", "ø", $replace); } else if ($res[2] == "15") { // Euro sign while (ereg("\244", $replace)) $replace = ereg_replace ("\244", "€", $replace); // Latin capital letter S with caron while (ereg("\246", $replace)) $replace = ereg_replace ("\244", "Š", $replace); // Latin small letter s with caron while (ereg("\250", $replace)) $replace = ereg_replace ("\250", "š", $replace); // Latin capital letter Z with caron while (ereg("\264", $replace)) $replace = ereg_replace ("\264", "Ž", $replace); // Latin small letter z with caron while (ereg("\270", $replace)) $replace = ereg_replace ("\270", "ž", $replace); // Latin capital ligature OE while (ereg("\274", $replace)) $replace = ereg_replace ("\274", "Œ", $replace); // Latin small ligature oe while (ereg("\275", $replace)) $replace = ereg_replace ("\275", "œ", $replace); // Latin capital letter Y with diaeresis while (ereg("\276", $replace)) $replace = ereg_replace ("\276", "Ÿ", $replace); } else if ($res[2] != "") { // This gets rid of all characters over 0x9F for other // iso-8859 charsets. $replace = strtr($replace, "\240\241\242\243\244\245\246\247". "\250\251\252\253\254\255\256\257". "\260\261\262\263\264\265\266\267". "\270\271\272\273\274\275\276\277". "\300\301\302\303\304\305\306\307". "\310\311\312\313\314\315\316\317". "\320\321\322\323\324\325\326\327". "\330\331\332\333\334\335\336\337". "\340\341\342\343\344\345\346\347". "\350\351\352\353\354\355\356\357". "\360\361\362\363\364\365\366\367". "\370\371\372\373\374\375\376\377", "????????????????????????????????????????". "????????????????????????????????????????". "????????????????????????????????????????". "????????"); } $string = eregi_replace ('=\?(us-ascii|iso-8859-([0-9])+)\?(q|b)\?([^?]+)\?=', $replace, $string); // In case there should be more encoding in the string: recurse return (decodeHeader($string)); } else return ($string); } ?>