X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fcompose.php;h=129346d9e626d77fe6788ed0537fa6276ef5da31;hp=e2c26708c7b7d05b291911ba3eb31bf11b69d2e2;hb=2a50fbd78ecc337335eff7e62e28ae06580d452c;hpb=52b3ed56229bd796349f1f983ab78f97558d96fd diff --git a/src/compose.php b/src/compose.php index e2c26708..129346d9 100644 --- a/src/compose.php +++ b/src/compose.php @@ -24,6 +24,7 @@ require_once('../functions/mime.php'); require_once('../functions/smtp.php'); require_once('../functions/display_messages.php'); require_once('../functions/plugin.php'); +require_once('../functions/html.php'); /* --------------------- Specific Functions ------------------------------ */ @@ -70,10 +71,10 @@ if (!isset($composesession)) { session_register('composesession'); } -if (!isset($session)) { +if (!isset($session) || (isset($newmessage) && $newmessage)) { $session = "$composesession" +1; $composesession = $session; -} +} if (!isset($mailbox) || $mailbox == '' || ($mailbox == 'None')) { $mailbox = 'INBOX'; @@ -179,7 +180,7 @@ if (isset($send)) { exit(); } if ($compose_new_win == '1') { - Header("Location: compose.php?mail_sent=yes&session=$composesession"); + Header("Location: compose.php?mail_sent=yes"); } else { Header("Location: right_main.php?mailbox=$urlMailbox&sort=$sort". @@ -344,6 +345,10 @@ elseif (isset($sigappend)) { getAttachments(0, $session); } + if (isset($passed_id) && $passed_id && isset($ent_num) && $ent_num) { + getAttachments(0, $session); + } + newMail($session); showInputForm($session); sqimap_logout($imapConnection); @@ -359,7 +364,7 @@ exit(); function newMail () { global $forward_id, $imapConnection, $msg, $ent_num, $body_ary, $body, $reply_id, $send_to, $send_to_cc, $mailbox, $send_to_bcc, $editor_size, - $draft_id, $use_signature, $composesession, $forward_cc; + $draft_id, $use_signature, $composesession, $forward_cc, $passed_id; $send_to = decodeHeader($send_to, false); $send_to_cc = decodeHeader($send_to_cc, false); @@ -372,8 +377,11 @@ function newMail () { $id = $forward_id; } elseif ($reply_id) { $id = $reply_id; + } elseif ($passed_id) { + $id = $passed_id; } + if ($draft_id){ $id = $draft_id; $use_signature = FALSE; @@ -383,29 +391,49 @@ function newMail () { sqimap_mailbox_select($imapConnection, $mailbox); $message = sqimap_get_message($imapConnection, $id, $mailbox); $orig_header = $message->header; + $body = ''; if ($ent_num) { - $message = getEntity($message, $ent_num); - } - if ($message->header->type0 == 'text' || - $message->header->type1 == 'message') { - if ($ent_num) { - $body = decodeBody( - mime_fetch_body($imapConnection, $id, $ent_num), - $message->header->encoding); - } else { - $body = decodeBody( - mime_fetch_body($imapConnection, $id, 1), - $message->header->encoding); + $ent_ar = preg_split('/_/',$ent_num); + foreach($ent_ar as $ent_num) { + $message = getEntity($message, $ent_num); + if ($message->header->type0 == 'text' || + $message->header->type1 == 'message') { + $bodypart = decodeBody( + mime_fetch_body($imapConnection, $id, $ent_num), + $message->header->encoding); + if ($message->header->type1 == 'html') { + $bodypart = strip_tags($bodypart); + } + $body .= $bodypart; + } + } + } else if ($message->header->type0 == 'text' || + $message->header->type1 == 'message') { + $body .= decodeBody( + mime_fetch_body($imapConnection, $id, 1), + $message->header->encoding); + if ($message->header->type1 == 'html') { + $body = strip_tags($body); + } + + } + + sqUnWordWrap($body); + + /* this corrects some wrapping/quoting problems on replies */ + if ($reply_id) { + $rewrap_body = explode("\n", $body); + for ($i=0;$i+)/", $rewrap_body[$i], $matches)) { + $gt = $matches[1]; + $rewrap_body[$i] = str_replace("\n", "\n$gt ", $rewrap_body[$i]); + } + $rewrap_body[$i] .= "\n"; } - } else { - $body = ''; - } - - if ($message->header->type1 == 'html') { - $body = strip_tags($body); + $body = implode("", $rewrap_body); } - //sqUnWordWrap($body); $body_ary = explode("\n", $body); $i = count($body_ary) - 1; while ($i >= 0 && ereg("^[>\\s]*$", $body_ary[$i])) { @@ -415,14 +443,14 @@ function newMail () { $body = ''; for ($i=0; isset($body_ary[$i]); $i++) { if ($reply_id) { - if (ereg('^[ >]+', $body_ary[$i])) { + if (preg_match("/^(>){1,}/", $body_ary[$i])) { $body_ary[$i] = '>' . $body_ary[$i]; } else { $body_ary[$i] = '> ' . $body_ary[$i]; } } - if (!$draft_id) { - sqWordWrap($body_ary[$i], $editor_size - 1); + if ($draft_id) { + sqWordWrap($body_ary[$i], $editor_size ); } $body .= $body_ary[$i] . "\n"; unset($body_ary[$i]); @@ -495,12 +523,14 @@ function newMail () { function getAttachments($message, $session) { global $mailbox, $attachments, $attachment_dir, $imapConnection, - $ent_num, $forward_id, $draft_id, $username; + $ent_num, $forward_id, $draft_id, $username, $passed_id; if (isset($draft_id)) { $id = $draft_id; - } else { + } else if (isset($forward_id)) { $id = $forward_id; + } else { + $id = $passed_id; } if (!$message) { @@ -559,6 +589,7 @@ function showInputForm ($session) { $mailprio, $default_use_mdn, $mdn_user_support, $compose_new_win, $saved_draft, $mail_sent, $sig_first, $edit_as_new; + $file_uploads = ini_get('file_uploads'); $subject = decodeHeader($subject, false); $reply_subj = decodeHeader($reply_subj, false); $forward_subj = decodeHeader($forward_subj, false); @@ -574,8 +605,10 @@ function showInputForm ($session) { '// -->' . "\n\n"; } - echo "\n" . '
'. _("Your Message has been sent").'
'; } - echo '' . "\n"; + echo html_tag( 'table', '', 'center', '', 'width="100%" cellspacing="0" border="0"' ) . "\n"; if ($compose_new_win == '1') { - echo '
'."\n"; - echo ' '."\n"; + echo html_tag( 'table', '', 'center', $color[0], 'width="100%" border="0"' ) . + html_tag( 'tr', + html_tag( 'td' ) . + html_tag( 'td', + '', + 'right' ) + ); } if ($location_of_buttons == 'top') { showComposeButtonRow(); @@ -608,11 +646,9 @@ function showInputForm ($session) { $idents = getPref($data_dir, $username, 'identities', 0); if ($idents > 1) { - echo ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n"; - } - echo ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . + ' ' . "\n"; + } + echo html_tag( 'tr', + html_tag( 'td', "\n" . _("To:"), 'right', $color[4], 'width="10%"' ) . + html_tag( 'td', + '
' . "\n", + 'left', $color[4], 'width="90%"' ) + ) . "\n" . + html_tag( 'tr', + html_tag( 'td', "\n" . _("CC:"), 'right', $color[4], 'width="10%"' ) . + html_tag( 'td', + '
' . "\n", + 'left', $color[4], 'width="90%"' ) + ) . "\n" . + html_tag( 'tr', + html_tag( 'td', "\n" . _("BCC:"), 'right', $color[4], 'width="10%"' ) . + html_tag( 'td', + '
' . "\n", + 'left', $color[4], 'width="90%"' ) + ) . "\n"; + if ($reply_subj) { - $reply_subj = str_replace('"', "'", $reply_subj); + $reply_subj = str_replace('"', '\'', $reply_subj); $reply_subj = trim($reply_subj); if (substr(strtolower($reply_subj), 0, 3) != 're:') { $reply_subj = 'Re: ' . $reply_subj; } - echo ' '; + $subject = $reply_subj; } elseif ($forward_subj) { $forward_subj = trim($forward_subj); @@ -680,28 +710,33 @@ function showInputForm ($session) { (substr(strtolower($forward_subj), 0, 6) != '[ fwd:')) { $forward_subj = '[Fwd: ' . $forward_subj . ']'; } - echo ' '; + $subject = $forward_subj; } else { - echo ' '; + $subject = $subject; } - echo '' . "\n\n"; + + echo html_tag( 'tr', + html_tag( 'td', "\n" . _("Subject:"), 'right', $color[4], 'width="10%"' ) . + html_tag( 'td', + '
' . "\n", + 'left', $color[4], 'width="90%"' ) + ) . "\n"; if ($location_of_buttons == 'between') { showComposeButtonRow(); } + + echo html_tag( 'tr' ) . "\n"; if ($compose_new_win == '1') { - echo ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n"; + echo '
' . "\n" . + ' ' . "\n" . + ' ' . "\n"; if ($location_of_buttons == 'bottom') { showComposeButtonRow(); } else { - echo ' ' . "\n"; + echo html_tag( 'tr', + html_tag( 'td', '   ', 'left', '', 'colspan="2"' ) ."\n" + ); } /* This code is for attachments */ - echo ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n" . - ' ' . "\n"; - - if (count($attachments)) { - $hashed_attachment_dir = getHashedDir($username, $attachment_dir); - echo ''; + echo '\n" . + ''; + } + /* End of attachment code */ } - /* End of attachment code */ if ($compose_new_win == '1') { - echo '
' . - "\n" . - _("From:") . - ' ' . "\n" . + echo html_tag( 'tr' ) . "\n" . + html_tag( 'td', "\n" . _("From:"), 'right', $color[4], 'width="10%"' ) . + html_tag( 'td', '', 'left', $color[4], 'width="90%"' ) . '' . "\n" . - '
' . "\n" . - _("To:") . - ' ' . "\n" . - '
' . "\n" . - '
' . "\n" . - _("CC:") . - ' ' . "\n" . - '
' . "\n" . - '
' . "\n" . - _("BCC:") . - ' ' . "\n" . - '
' . "\n" . - '
' . "\n" . - _("Subject:") . - ' ' . "\n"; + '
' . "\n" . - '
' . "\n" . - '
'; - echo '  
' . "\n" . - _("Attach:") . - ' ' . "\n" . - ' ' . "\n" . - '   ' . "\n" . - '
' . "\n" . - ' ' . - ''; - foreach ($attachments as $key => $info) { - if ($info['session'] == $session) { - $attached_file = "$hashed_attachment_dir/$info[localfilename]"; - echo '\n" . - $info['remotefilename'] . ' - ' . $info['type'] . ' (' . - show_readable_size(filesize($attached_file)) . ")
\n"; - } - } + if ($file_uploads) { + echo html_tag( 'tr', + html_tag( 'td', "\n" . _("Attach:") ."\n", 'right', '', 'valign="middle"' ) ."\n" . + html_tag( 'td', "\n" . '' . + '  ' . "\n" , + 'left', '', 'valign="middle"' ) ."\n" + ); + + if (count($attachments)) { + $hashed_attachment_dir = getHashedDir($username, $attachment_dir); + echo html_tag( 'tr' ) . + html_tag( 'td', "\n" . ' ', 'right', $color[0] ) . + html_tag( 'td', '', 'left', $color[0] ); + foreach ($attachments as $key => $info) { + if ($info['session'] == $session) { + $attached_file = "$hashed_attachment_dir/$info[localfilename]"; + echo '\n" . + $info['remotefilename'] . ' - ' . $info['type'] . ' (' . + show_readable_size( filesize( $attached_file ) ) . ")
\n"; + } + } - echo '\n" . - '
'."\n"; + echo ''."\n"; } - echo '' . "\n"; + echo '' . "\n"; if ($reply_id) { echo '\n \n"; + echo " \n" . + html_tag( 'tr' ) . + html_tag( 'td', "\n", 'left' ) . + html_tag( 'td', '', 'left' ); echo "\n \n"; if ($use_javascript_addr_book) { echo "