X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fcompose.php;h=e13c8a257c156237b34c1a550624c1249c690818;hb=b235d62915dba943446744b725971bd2c47bc347;hp=1be7a42d63749208566daa50bd7289d3623a39f9;hpb=408840652d73c618367606ec106eb530cc01c488;p=squirrelmail.git diff --git a/src/compose.php b/src/compose.php index 1be7a42d..e13c8a25 100644 --- a/src/compose.php +++ b/src/compose.php @@ -5,35 +5,133 @@ include("../functions/imap.php"); include("../functions/mailbox.php"); include("../functions/date.php"); + include("../functions/mime.php"); - echo "\n"; - $imapConnection = loginToImapServer($username, $key, $imapServerAddress); - displayPageHeader("None"); + include("../src/load_prefs.php"); - if ($reply_id) { + echo "\n"; + $imapConnection = loginToImapServer($username, $key, $imapServerAddress, 0); + displayPageHeader($color, "None"); + + if ($forward_id) { selectMailbox($imapConnection, $mailbox, $numMessages); - $body_ary = fetchBody($imapConnection, $reply_id); + $msg = fetchMessage($imapConnection, $forward_id, $mailbox); + + if (containsType($msg, "text", "html", $ent_num)) { + $body = decodeBody($msg["ENTITIES"][$ent_num]["BODY"], $msg["ENTITIES"][$ent_num]["ENCODING"]); + } else if (containsType($msg, "text", "plain", $ent_num)) { + $body = decodeBody($msg["ENTITIES"][$ent_num]["BODY"], $msg["ENTITIES"][$ent_num]["ENCODING"]); + } + // add other primary displaying msg types here + else { + // find any type that's displayable + if (containsType($msg, "text", "any_type", $ent_num)) { + $body = decodeBody($msg["ENTITIES"][$ent_num]["BODY"], $msg["ENTITIES"][$ent_num]["ENCODING"]); + } else if (containsType($msg, "msg", "any_type", $ent_num)) { + $body = decodeBody($msg["ENTITIES"][$ent_num]["BODY"], $msg["ENTITIES"][$ent_num]["ENCODING"]); + } else { + $body = _("No Message"); + } + } + + $type1 = $msg["ENTITIES"][$ent_num]["TYPE1"]; + + $tmp = _("-------- Original Message ---------\n"); + $body_ary = explode("\n", $body); + $body = ""; for ($i=0;$i < count($body_ary);$i++) { - $tmp = strip_tags($body_ary[$i]); - $tmp = substr($tmp, 0, strlen($tmp) -1); - $body = "$body> $tmp"; + if ($type1 == "html") + $tmp .= strip_tags($body_ary[$i]); + else + $tmp .= $body_ary[$i]; + $body = "$body$tmp\n"; + $tmp = ""; } - } else if ($forward_id) { + } + + if ($reply_id) { selectMailbox($imapConnection, $mailbox, $numMessages); - $body_ary = fetchBody($imapConnection, $forward_id); + $msg = fetchMessage($imapConnection, $reply_id, $mailbox); + + if (containsType($msg, "text", "html", $ent_num)) { + $body = decodeBody($msg["ENTITIES"][$ent_num]["BODY"], $msg["ENTITIES"][$ent_num]["ENCODING"], false); + } else if (containsType($msg, "text", "plain", $ent_num)) { + $body = decodeBody($msg["ENTITIES"][$ent_num]["BODY"], $msg["ENTITIES"][$ent_num]["ENCODING"], false); + } + // add other primary displaying msg types here + else { + // find any type that's displayable + if (containsType($msg, "text", "any_type", $ent_num)) { + $body = decodeBody($msg["ENTITIES"][$ent_num]["BODY"], $msg["ENTITIES"][$ent_num]["ENCODING"], false); + } else if (containsType($msg, "msg", "any_type", $ent_num)) { + $body = decodeBody($msg["ENTITIES"][$ent_num]["BODY"], $msg["ENTITIES"][$ent_num]["ENCODING"], false); + } else { + $body = _("No Message"); + } + } + + $type1 = $msg["ENTITIES"][$ent_num]["TYPE1"]; + + $body_ary = explode("\n", $body); + $body = ""; for ($i=0;$i < count($body_ary);$i++) { - $tmp = strip_tags($body_ary[$i]); - $tmp = substr($tmp, 0, strlen($tmp) -1); - $body = "$body> $tmp"; + if ($type1 == "html") + $tmp = strip_tags($body_ary[$i]); + else + $tmp = $body_ary[$i]; + $body = "$body> $tmp\n"; + } + } + + // Add some decoding information + $send_to = encodeEmailAddr($send_to); + // parses the field and returns only the email address + $send_to = decodeEmailAddr($send_to); + + $send_to = strtolower($send_to); + $send_to = ereg_replace("\"", "", $send_to); + $send_to = stripslashes($send_to); + + /** This formats a CC string if they hit "reply all" **/ + if ($send_to_cc != "") { + $send_to_cc = ereg_replace(";", ",", $send_to_cc); + $sendcc = explode(",", $send_to_cc); + $send_to_cc = ""; + + for ($i = 0; $i < count($sendcc); $i++) { + $sendcc[$i] = trim($sendcc[$i]); + if ($sendcc[$i] == "") + continue; + + $sendcc[$i] = encodeEmailAddr($sendcc[$i]); + $sendcc[$i] = decodeEmailAddr($sendcc[$i]); + + $whofrom = encodeEmailAddr($msg["HEADER"]["FROM"]); + $whofrom = decodeEmailAddr($whofrom); + + $whoreplyto = encodeEmailAddr($msg["HEADER"]["REPLYTO"]); + $whoreplyto = decodeEmailAddr($whoreplyto); + + if ((strtolower(trim($sendcc[$i])) != strtolower(trim($whofrom))) && + (strtolower(trim($sendcc[$i])) != strtolower(trim($whoreplyto))) && + (trim($sendcc[$i]) != "")) { + $send_to_cc .= trim($sendcc[$i]) . ", "; + } + } + $send_to_cc = trim($send_to_cc); + if (substr($send_to_cc, -1) == ",") { + $send_to_cc = substr($send_to_cc, 0, strlen($send_to_cc) - 1); } } echo "
\n"; - echo "\n"; + echo "
\n"; echo " \n"; - echo " \n"; echo " \n"; echo " \n"; - echo " \n"; echo " \n"; echo " \n"; - echo " \n"; echo " \n"; - echo " \n"; - echo " \n"; echo " \n"; echo " \n"; - echo " "; - echo " "; echo " \n"; echo "
\n"; - echo " To: \n"; - echo " \n"; + echo " \n"; + echo " "; + echo _("To:"); + echo " \n"; + echo " \n"; if ($send_to) echo "
"; else @@ -41,45 +139,63 @@ echo "
\n"; + echo " \n"; echo " CC:\n"; - echo " \n"; - echo "
"; + echo "
\n"; + if ($send_to_cc) + echo "
"; + else + echo "
"; echo "
\n"; + echo " \n"; echo " BCC:\n"; - echo " \n"; + echo " \n"; echo "
"; echo "
\n"; - echo " Subject:\n"; - echo " \n"; + echo " \n"; + echo " "; + echo _("Subject:"); + echo " \n"; + echo " \n"; if ($reply_subj) { $reply_subj = str_replace("\"", "'", $reply_subj); $reply_subj = stripslashes($reply_subj); - echo "
"; + $reply_subj = trim($reply_subj); + if (substr(strtolower($reply_subj), 0, 3) != "re:") + $reply_subj = "Re: $reply_subj"; + echo " "; } else if ($forward_subj) { - $forward_subj = stripquotes($forward_subj); - echo "
"; + $forward_subj = str_replace("\"", "'", $forward_subj); + $forward_subj = stripslashes($forward_subj); + $forward_subj = trim($forward_subj); + if ((substr(strtolower($forward_subj), 0, 4) != "fwd:") && + (substr(strtolower($forward_subj), 0, 5) != "[fwd:") && + (substr(strtolower($forward_subj), 0, 6) != "[ fwd:")) + $forward_subj = "[Fwd: $forward_subj]"; + echo " "; } else { echo " "; } - echo "  
"; + echo "  
"; echo "
\n"; - echo " \n"; - echo "
"; + echo "
\n"; + if ($use_signature == true) + echo "   
"; + else + echo "   
"; echo "
\n"; - echo "
"; + echo "
"; echo "
"; -?> \ No newline at end of file +?>