X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fdownload.php;h=be8ee42ae3c775ca86c5cab940f1d52d9a128291;hb=50ed645bfb9c43868ea808995235a3d6b9152e1b;hp=f6235fab658b2418a3e32700ae317b541c09aebe;hpb=97d7da3b6fde0d4a8e8a392fdc3c24ee2b7f8293;p=squirrelmail.git diff --git a/src/download.php b/src/download.php index f6235fab..be8ee42a 100644 --- a/src/download.php +++ b/src/download.php @@ -20,7 +20,7 @@ require_once('../functions/date.php'); header('Pragma: '); header('Cache-Control: cache'); -function viewText($color, $body, $id, $entid, $mailbox, $type1, $wrap_at) { +function viewText($color, $body, $id, $entid, $mailbox, $type1, $wrap_at, $imapConnection) { global $where, $what, $charset; global $startMessage; @@ -46,7 +46,8 @@ function viewText($color, $body, $id, $entid, $mailbox, $type1, $wrap_at) { ""; if ($type1 == 'html') { - $body = MagicHTML( $body, $id ); + $msg = sqimap_get_message($imapConnection, $id, $mailbox); + $body = MagicHTML( $body, $id, $msg ); } else { translateText($body, $wrap_at, $charset); } @@ -56,17 +57,31 @@ function viewText($color, $body, $id, $entid, $mailbox, $type1, $wrap_at) { ""; } -function viewMessage($imapConnection, $id, $mailbox, $ent_id, $msg, $color, $wrap_at) { +function viewMessage($imapConnection, $id, $mailbox, $ent_id, $color, $wrap_at, $extracted) { global $startMessage; + + + $msg = sqimap_get_message($imapConnection, $id, $mailbox); + $msg = getEntity($msg, $ent_id); + $header = sqimap_get_ent_header($imapConnection,$id,$mailbox,$ent_id); + $header->id = $id; $msg->header = $header; - $msg->header->id = $id; - $body = formatBody($imapConnection, $msg, $color, $wrap_at); - $bodyheader = viewHeader($header, $color); + $ent_ar = findDisplayEntity($msg, 0); + $body = ''; + for ($i = 0; $i < count($ent_ar); $i++) { + $body .= formatBody($imapConnection, $msg, $color, $wrap_at, $ent_ar[$i], false); + } + + $bodyheader = viewHeader($header, $color); displayPageHeader($color, 'None'); - echo "
". + echo "
"; + if ($extracted) { + echo ''; + } + echo "

Message succesfully extracted

". "
". _("Viewing a message attachment") . " - "; echo "". _("View message") . ""; @@ -83,8 +98,40 @@ function viewMessage($imapConnection, $id, $mailbox, $ent_id, $msg, $color, $wra echo "$bodyheader
"; echo "
". - "
"; - echo "$body
"; + "

"; + echo "$body

"; + echo '
'. + "
". + '
'. + "". + "". + "". + "". + "". + _("Save to:") . + ' '.' '. + ''. + ''. + '
'. + '
'; + +} + +function get_extract_to_target_list($imapConnection) { + + $boxes = sqimap_mailbox_list($imapConnection); + for ($i = 0; $i < count($boxes); $i++) { + if (!in_array('noselect', $boxes[$i]['flags'])) { + $box = $boxes[$i]['unformatted']; + $box2 = str_replace(' ', ' ', $boxes[$i]['unformatted-disp']); + if ( $box2 == 'INBOX' ) { + $box2 = _("INBOX"); + } + echo "\n"; + } + } } @@ -236,22 +283,37 @@ function formatRecipientString($recipients, $item ) { $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); sqimap_mailbox_select($imapConnection, $mailbox); -/* - * $message contains all information about the message - * including header and body - */ -$message = sqimap_get_message($imapConnection, $passed_id, $mailbox); - -$top_header = $message->header; - +$extracted = false; +if (isset($extract_message) && $extract_message) { + $cmd = "FETCH $passed_id BODY[$passed_ent_id]"; + $read = sqimap_run_command ($imapConnection, $cmd, true, $response, $message); + $cnt = count($read); + $body = ''; + $length = 0; + for ($i=1;$i<$cnt;$i++) { + $length = $length + strlen($read[$i]); + $body .= $read[$i]; + } + if (isset($targetMailbox) && $length>0) { + sqimap_append ($imapConnection, $targetMailbox, $length); + fputs($imapConnection,$body); + sqimap_append_done ($imapConnection); + $extracted = true; + } +} + +if (isset($showHeaders)) { + $top_header = sqimap_get_message_header ($imapConnection, $passed_id, $mailbox); +} /* * lets redefine message as this particular entity that we wish to display. * it should hold only the header for this entity. We need to fetch the body * yet before we can display anything. */ -$message = getEntity($message, $passed_ent_id); -$header = $message->header; +$header = sqimap_get_mime_ent_header ($imapConnection, $passed_id, $mailbox, $passed_ent_id); +$header->entity_id = $passed_ent_id; +$header->mailbox = $mailbox; $charset = $header->charset; $type0 = $header->type0; @@ -335,7 +397,7 @@ if (isset($absolute_dl) && $absolute_dl == 'true') { if ($type1 == 'plain' || $type1 == 'html') { $body = mime_fetch_body($imapConnection, $passed_id, $passed_ent_id); $body = decodeBody($body, $header->encoding); - viewText($color, $body, $passed_id, $passed_ent_id, $mailbox, $type1, $wrap_at); + viewText($color, $body, $passed_id, $passed_ent_id, $mailbox, $type1, $wrap_at, $imapConnection); } else { DumpHeaders($type0, $type1, $filename, 0); $body = mime_fetch_body($imapConnection, $passed_id, $passed_ent_id); @@ -345,11 +407,11 @@ if (isset($absolute_dl) && $absolute_dl == 'true') { break; case 'message': if ($type1 == 'rfc822' ) { - viewMessage($imapConnection, $passed_id, $mailbox, $passed_ent_id, $message, $color, $wrap_at); + viewMessage($imapConnection, $passed_id, $mailbox, $passed_ent_id, $color, $wrap_at, $extracted); } else { $body = mime_fetch_body($imapConnection, $passed_id, $passed_ent_id); $body = decodeBody($body, $msgheader->encoding); - viewText($color, $body, $passed_id, $passed_ent_id, $mailbox, $type1, $wrap_at); + viewText($color, $body, $passed_id, $passed_ent_id, $mailbox, $type1, $wrap_at, $imapConnection); } break; default: