+ /** This code sends a mail.
+ **
+ ** There are 3 modes of operation:
+ ** - Start new mail
+ ** - Add an attachment
+ ** - Send mail
+ **/
+
+ session_start();
+
+ if (!isset($config_php))
+ include("../config/config.php");
+ if (!isset($strings_php))
+ include("../functions/strings.php");
+ if (!isset($page_header_php))
+ include("../functions/page_header.php");
+ if (!isset($imap_php))
+ include("../functions/imap.php");
+ if (!isset($date_php))
+ include("../functions/date.php");
+ if (!isset($mime_php))
+ include("../functions/mime.php");
+ if (!isset($smtp_php))
+ include("../functions/smtp.php");
+ if (!isset($display_messages_php))
+ include("../functions/display_messages.php");
+
+ include("../src/load_prefs.php");
+
+ // This function is used when not sending or adding attachments
+ function newMail () {
+ global $forward_id, $imapConnection, $msg, $ent_num, $body_ary, $body,
+ $reply_id, $send_to, $send_to_cc, $mailbox;
+
+ $send_to = decodeHeader($send_to);
+ $send_to_cc = decodeHeader($send_to_cc);
+
+ if ($forward_id) {
+ sqimap_mailbox_select($imapConnection, $mailbox);
+ $msg = sqimap_get_message($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++) {
+ if ($type1 == "html")
+ $tmp .= strip_tags($body_ary[$i]);
+ else
+ $tmp .= $body_ary[$i];
+ $body = "$body$tmp\n";
+ $tmp = "";
+ }
+ }
+
+ if ($reply_id) {
+ sqimap_mailbox_select($imapConnection, $mailbox);
+ $msg = sqimap_get_message($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++) {
+ if ($type1 == "html")
+ $tmp = strip_tags($body_ary[$i]);
+ else
+ $tmp = $body_ary[$i];
+ $body = "$body> $tmp\n";
+ }
+ }
+
+ if (!$send_to) {
+ $send_to = sqimap_find_email($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] = sqimap_find_email($sendcc[$i]);
+ $whofrom = sqimap_find_displayable_name($msg["HEADER"]["FROM"]);
+ $whoreplyto = sqimap_find_email($msg["HEADER"]["REPLYTO"]);
+
+ 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);
+ }