From 13b13ded5617e554271c76f905dbd6dc1528154b Mon Sep 17 00:00:00 2001 From: stekkel Date: Tue, 28 May 2002 22:34:30 +0000 Subject: [PATCH] Added possibility to extract message/rfc822 attachments and save it to a folder. (I realy like the devel branche :-) ) git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2890 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- src/download.php | 67 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/src/download.php b/src/download.php index 22f9c605..93c9367c 100644 --- a/src/download.php +++ b/src/download.php @@ -56,7 +56,7 @@ function viewText($color, $body, $id, $entid, $mailbox, $type1, $wrap_at) { ""; } -function viewMessage($imapConnection, $id, $mailbox, $ent_id, $color, $wrap_at) { +function viewMessage($imapConnection, $id, $mailbox, $ent_id, $color, $wrap_at, $extracted) { global $startMessage; @@ -64,13 +64,17 @@ function viewMessage($imapConnection, $id, $mailbox, $ent_id, $color, $wrap_at) $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); displayPageHeader($color, 'None'); - echo "
". + echo "
"; + if ($extracted) { + echo ''; + } + echo "

Message succesfully extracted

". "
". _("Viewing a message attachment") . " - "; echo "". _("View message") . ""; @@ -87,8 +91,40 @@ function viewMessage($imapConnection, $id, $mailbox, $ent_id, $color, $wrap_at) 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"; + } + } } @@ -240,6 +276,25 @@ function formatRecipientString($recipients, $item ) { $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); sqimap_mailbox_select($imapConnection, $mailbox); +$extracted = false; +if (isset($extract_message) && $extract_message) { + $cmd = "FETCH $passed_id BODY[$passed_ent_id]"; + $read = sqimap_run_command ($imapConnection, $cmd, $handle_errors, $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); } @@ -345,7 +400,7 @@ if (isset($absolute_dl) && $absolute_dl == 'true') { break; case 'message': if ($type1 == 'rfc822' ) { - viewMessage($imapConnection, $passed_id, $mailbox, $passed_ent_id, $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); -- 2.25.1