X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fread_body.php;h=b9911f63c943465ca9b0712b96db0087e99d1a4a;hb=aa1340ebb1e775a36b74dbfc22391ee095d45394;hp=10657bba59771c20ef8a68ef8295cd17a2e971ea;hpb=71911a21c5e0457ddd027d70efc16b8b1c411617;p=squirrelmail.git diff --git a/src/read_body.php b/src/read_body.php index 10657bba..b9911f63 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -6,7 +6,7 @@ * This file is used for reading the msgs array and displaying * the resulting emails in the right frame. * - * @copyright © 1999-2007 The SquirrelMail Project Team + * @copyright 1999-2017 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail @@ -273,7 +273,7 @@ function SendMDN ( $mailbox, $passed_id, $message, $imapConnection) { if (! empty($deliver->dlv_server_msg)) { $msg.= "\n" . _("Server replied:") . ' ' . $deliver->dlv_ret_nr . ' ' . - nl2br(htmlspecialchars($deliver->dlv_server_msg)); + nl2br(sm_encode_html_special_chars($deliver->dlv_server_msg)); } plain_error_message($msg); } else { @@ -358,7 +358,7 @@ function formatRecipientString($recipients, $item ) { $a[] = array( // note: decodeHeader is htmlsafe by default 'Name' => decodeHeader($r->getAddress(false)), - 'Email' => htmlspecialchars($r->getEmail()), + 'Email' => sm_encode_html_special_chars($r->getEmail()), 'Full' => decodeHeader($r->getAddress(true)) ); } @@ -554,7 +554,8 @@ function formatMenubar($aMailbox, $passed_id, $passed_ent_id, $message, '&mailbox='.$urlMailbox.'&sort='.$sort. '&startMessage='.$startMessage.'&show_more=0'. "&where=$where&what=$what" . - '&delete_id='.$passed_id; + '&delete_id='.$passed_id . + '&smtoken='.sm_generate_security_token(); } if ($next >= 0) { @@ -562,7 +563,8 @@ function formatMenubar($aMailbox, $passed_id, $passed_ent_id, $message, '&mailbox='.$urlMailbox.'&sort='.$sort. '&startMessage='.$startMessage.'&show_more=0'. "&where=$where&what=$what" . - '&delete_id='.$passed_id; + '&delete_id='.$passed_id . + '&smtoken='.sm_generate_security_token(); } } } @@ -628,7 +630,7 @@ function formatMenubar($aMailbox, $passed_id, $passed_ent_id, $message, // If Draft folder - create Resume link $resume_draft = $edit_as_new = false; - if (($mailbox == $draft_folder) && ($save_as_draft)) { + if (isDraftMailbox($mailbox) && ($save_as_draft)) { $resume_draft = true; } else if (handleAsSent($mailbox)) { $edit_as_new = true; @@ -674,12 +676,14 @@ function formatMenubar($aMailbox, $passed_id, $passed_ent_id, $message, global $accesskey_read_msg_reply, $accesskey_read_msg_reply_all, $accesskey_read_msg_forward, $accesskey_read_msg_as_attach, $accesskey_read_msg_delete, $accesskey_read_msg_bypass_trash, - $accesskey_read_msg_move, $accesskey_read_msg_move_to; + $accesskey_read_msg_move, $accesskey_read_msg_move_to, + $accesskey_read_msg_copy; } else { $accesskey_read_msg_reply = $accesskey_read_msg_reply_all = $accesskey_read_msg_forward = $accesskey_read_msg_as_attach = $accesskey_read_msg_delete = $accesskey_read_msg_bypass_trash = - $accesskey_read_msg_move = $accesskey_read_msg_move_to = 'NONE'; + $accesskey_read_msg_move = $accesskey_read_msg_move_to = + $accesskey_read_msg_copy = 'NONE'; } $oTemplate->assign('accesskey_read_msg_reply', $accesskey_read_msg_reply); $oTemplate->assign('accesskey_read_msg_reply_all', $accesskey_read_msg_reply_all); @@ -689,6 +693,7 @@ function formatMenubar($aMailbox, $passed_id, $passed_ent_id, $message, $oTemplate->assign('accesskey_read_msg_bypass_trash', $accesskey_read_msg_bypass_trash); $oTemplate->assign('accesskey_read_msg_move_to', $accesskey_read_msg_move_to); $oTemplate->assign('accesskey_read_msg_move', $accesskey_read_msg_move); + $oTemplate->assign('accesskey_read_msg_copy', $accesskey_read_msg_copy); global $null; do_hook('read_body_menu', $null); @@ -962,6 +967,14 @@ if (isset($passed_ent_id) && $passed_ent_id) { } $header = $message->header; +// gmail does not mark messages as read when retrieving the message body +// even though RFC 3501, section 6.4.5 (FETCH Command) says: +// "The \Seen flag is implicitly set; if this causes the flags to change, +// they SHOULD be included as part of the FETCH responses." +// +if ($imap_server_type == 'gmail') { + sqimap_toggle_flag($imapConnection, $passed_id, '\\Seen', true, true); +} /****************************************/ /* Block for handling incoming url vars */