$msg = mime_get_element ($structure, $msg, $ent_id);
if ($debug_mime) echo "<br>";
}
- return $msg;
if ($debug_mime) echo "<font color=008800><tt> END: mime_parse_structure()</tt></font><br>";
+ return $msg;
}
// Increments the element ID. An element id can look like any of
$str .= htmlspecialchars($d) . "\n";
}
return $str;
-
- 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) {
// this if statement checks for the entity to show as the
// primary message. To add more of them, just put them in the
// order that is their priority.
- global $startMessage, $username, $key, $imapServerAddress, $imapPort;
+ global $startMessage, $username, $key, $imapServerAddress, $imapPort,
+ $show_html_default;
$id = $message->header->id;
$urlmailbox = urlencode($message->header->mailbox);
// If there are other types that shouldn't be formatted, add
// them here
- if ($body_message->header->type1 != "html") {
+ if ($body_message->header->type1 != "html" || ! $show_html_default) {
translateText($body, $wrap_at, $body_message->header->charset);
}
$body = str_replace("\r\n", "\n", $body);
$encoding = strtolower($encoding);
+ global $show_html_default;
+
if ($encoding == "quoted-printable") {
$body = quoted_printable_decode($body);
} else if ($encoding == "base64") {
$body = base64_decode($body);
}
-
- // All other encodings are returned raw.
+
+ switch($show_html_default) {
+ case '1': // Safe HTML
+ // Philippe's code
+ break;
+ case '2': // Any HTML
+ break;
+ default: // No HTML
+ $body = str_replace('<', '<', $body);
+ break;
+ }
return $body;
}
// be encoded.
function encodeHeader ($string) {
global $default_charset;
-
- // Encode only if the string contains 8-bit characters or =?
- if (ereg("([\200-\377]|=\\?)", $string)) {
-
- // First the special characters
- $string = str_replace("=", "=3D", $string);
- $string = str_replace("?", "=3F", $string);
- $string = str_replace("_", "=5F", $string);
- $string = str_replace(" ", "_", $string);
-
- for ( $ch = 127 ; $ch <= 255 ; $ch++ ) {
- $replace = chr($ch);
- $insert = sprintf("=%02X", $ch);
- $string = str_replace($replace, $insert, $string);
- }
-
- $newstring = "=?$default_charset?Q?".$string."?=";
-
- return $newstring;
- }
-
- return $string;
- }
+
+ // Encode only if the string contains 8-bit characters or =?
+ $j = strlen( $string );
+ $l = FALSE; // Must be encoded ?
+ $ret = '';
+ for( $i=0; $i < $j; ++$i) {
+ switch( $string{$i} ) {
+ case '=':
+ $ret .= '=3D';
+ break;
+ case '?':
+ $l = TRUE;
+ $ret .= '=3F';
+ break;
+ case '_':
+ $ret .= '=5F';
+ break;
+ case ' ':
+ $ret .= '_';
+ break;
+ default:
+ $k = ord( $string{$i} );
+ if( $k > 126 ) {
+ $ret .= sprintf("=%02X", $k);
+ $l = TRUE;
+ } else
+ $ret .= $string{$i};
+ }
+ }
+
+ if( $l )
+ $string = "=?$default_charset?Q?$ret?=";
+
+ return( $string );
+ }
?>