From 77b88425285b73a8670c8fc8c1a6f5fc113a1906 Mon Sep 17 00:00:00 2001 From: philippe_mingo Date: Sat, 9 Feb 2002 17:29:58 +0000 Subject: [PATCH] MDN git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2394 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/imap_mailbox.php | 8 +- functions/mime.php | 237 ++++++------ functions/smtp.php | 146 ++++---- locale/es_ES/LC_MESSAGES/squirrelmail.mo | Bin 69402 -> 69097 bytes locale/es_ES/LC_MESSAGES/squirrelmail.po | 448 +++++++++++------------ src/read_body.php | 54 ++- 6 files changed, 439 insertions(+), 454 deletions(-) diff --git a/functions/imap_mailbox.php b/functions/imap_mailbox.php index d9be41fd..e04d5bcf 100755 --- a/functions/imap_mailbox.php +++ b/functions/imap_mailbox.php @@ -102,10 +102,12 @@ function sqimap_mailbox_select ($imap_stream, $mailbox, } } return $r[1]; - } - if ($auto_expunge) { - $tmp = sqimap_run_command($imap_stream, 'EXPUNGE', + } else { + if ($auto_expunge) { + $tmp = sqimap_run_command($imap_stream, 'EXPUNGE', false, $a, $b); + } + return( $read ); } } diff --git a/functions/mime.php b/functions/mime.php index e7016d79..bf3ed74a 100644 --- a/functions/mime.php +++ b/functions/mime.php @@ -33,9 +33,8 @@ class message { more objects of type message. See documentation in mime.txt for a better description of how this works. **/ - var $header = ''; - var $entities = array(); - + var $header = '', $entities = array(); + function addEntity ($msg) { $this->entities[] = $msg; } @@ -59,15 +58,15 @@ function mime_structure ($imap_stream, $header) { // // This should use sqimap_read_data instead of reading it itself // - $read = fgets ($imap_stream, 10000); + $read = fgets ($imap_stream, 9216); $bodystructure = ''; while ( substr($read, 0, $lsid) <> $ssid && !feof( $imap_stream ) ) { $bodystructure .= $read; - $read = fgets ($imap_stream, 10000); + $read = fgets ($imap_stream, 9216); } $read = $bodystructure; - + // isolate the body structure and remove beginning and end parenthesis $read = trim(substr ($read, strpos(strtolower($read), 'bodystructure') + 13)); $read = trim(substr ($read, 0, -1)); @@ -77,10 +76,10 @@ function mime_structure ($imap_stream, $header) { $read = trim(substr ($read, 1)); $end = mime_match_parenthesis(0, $read); } - + $msg = mime_parse_structure ($read, 0); $msg->header = $header; - + return( $msg ); } @@ -120,15 +119,15 @@ function mime_parse_structure ($structure, $ent_id) { */ function mime_increment_id ($id) { - if (strpos($id, ".")) { - $first = substr($id, 0, strrpos($id, ".")); - $last = substr($id, strrpos($id, ".")+1); + if (strpos($id, '.')) { + $first = substr($id, 0, strrpos($id, '.')); + $last = substr($id, strrpos($id, '.')+1); $last++; - $new = $first . "." .$last; + $new = $first . '.' .$last; } else { $new = $id + 1; } - + return $new; } @@ -142,13 +141,13 @@ function mime_increment_id ($id) { */ function mime_new_element_level ($id) { - if (!$id) { - $id = 0; - } else { - $id = $id . '.0'; - } + if (!$id) { + $id = 0; + } else { + $id = $id . '.0'; + } - return( $id ); + return( $id ); } function mime_get_element (&$structure, $msg, $ent_id) { @@ -380,14 +379,15 @@ function mime_fetch_body($imap_stream, $id, $ent_id ) { $ent_id = 1; } - $cmd = "FETCH $id BODY[$ent_id]"; + $cmd = "FETCH $id BODY[$ent_id] "; $data = sqimap_run_command ($imap_stream, $cmd, true, $response, $message); - $topline = array_shift($data); - while (! ereg('\\* [0-9]+ FETCH ', $topline) && $data) { - $topline = array_shift($data); - } + + do { + $topline = array_shift( $data ); + } while( $topline && $topline == '*' && !preg_match( '/\\* [0-9] FETCH.*/i', $topline )) ; $wholemessage = implode('', $data); if (ereg('\\{([^\\}]*)\\}', $topline, $regs)) { + $ret = substr( $wholemessage, 0, $regs[1] ); /* There is some information in the content info header that could be important @@ -634,7 +634,7 @@ function formatBody($imap_stream, $message, $color, $wrap_at) { } $body .= "
". _("Download this as a file") ."

"; - + /** Display the ATTACHMENTS: message if there's more than one part **/ $body .= ""; if (isset($message->entities[0])) { @@ -651,108 +651,109 @@ function formatBody($imap_stream, $message, $color, $wrap_at) { * A recursive function that returns a list of attachments with links * to where to download these attachments */ -function formatAttachments ($message, $ent_id, $mailbox, $id) { - global $where, $what; - global $startMessage, $color; - static $ShownHTML = 0; +function formatAttachments($message, $ent_id, $mailbox, $id) { + global $where, $what; + global $startMessage, $color; + static $ShownHTML = 0; - $body = ""; - if ($ShownHTML == 0) { - $ShownHTML = 1; + $body = ''; + if ($ShownHTML == 0) { + $ShownHTML = 1; $body .= "\n" . - "
\n" . - _("Attachments") . ':' . - "
\n" . - "\n" . - formatAttachments ($message, $ent_id, $mailbox, $id) . - "
"; - - return( $body ); - } + "\n" . + _("Attachments") . ':' . + "\n" . + "\n" . + formatAttachments($message, $ent_id, $mailbox, $id) . + "
"; + + } else if ($message) { + + if (!$message->entities) { + + $type0 = strtolower($message->header->type0); + $type1 = strtolower($message->header->type1); + $name = decodeHeader($message->header->name); + + if ($message->header->entity_id != $ent_id) { + $filename = decodeHeader($message->header->filename); + if (trim($filename) == '') { + if (trim($name) == '') { + if ( trim( $message->header->id ) == '' ) + $display_filename = 'untitled-[' . $message->header->entity_id . ']' ; + else + $display_filename = 'cid: ' . $message->header->id; + // $display_filename = 'untitled-[' . $message->header->entity_id . ']' ; + } else { + $display_filename = $name; + $filename = $name; + } + } else { + $display_filename = $filename; + } - if ($message) { - if (!$message->entities) { - $type0 = strtolower($message->header->type0); - $type1 = strtolower($message->header->type1); - $name = decodeHeader($message->header->name); - - if ($message->header->entity_id != $ent_id) { - $filename = decodeHeader($message->header->filename); - if (trim($filename) == '') { - if (trim($name) == '') { - if ( trim( $message->header->id ) == '' ) - $display_filename = 'untitled-[' . $message->header->entity_id . ']' ; - else - $display_filename = 'cid: ' . $message->header->id; - // $display_filename = 'untitled-[' . $message->header->entity_id . ']' ; - } else { - $display_filename = $name; - $filename = $name; - } - } else { - $display_filename = $filename; - } + $urlMailbox = urlencode($mailbox); + $ent = urlencode($message->header->entity_id); - $urlMailbox = urlencode($mailbox); - $ent = urlencode($message->header->entity_id); - - $DefaultLink = - "../src/download.php?startMessage=$startMessage&passed_id=$id&mailbox=$urlMailbox&passed_ent_id=$ent"; - if ($where && $what) - $DefaultLink .= '&where=' . urlencode($where) . '&what=' . urlencode($what); - $Links['download link']['text'] = _("download"); - $Links['download link']['href'] = - "../src/download.php?absolute_dl=true&passed_id=$id&mailbox=$urlMailbox&passed_ent_id=$ent"; - $ImageURL = ''; - - /* this executes the attachment hook with a specific MIME-type. - * if that doens't have results, it tries if there's a rule - * for a more generic type. */ - $HookResults = do_hook("attachment $type0/$type1", $Links, - $startMessage, $id, $urlMailbox, $ent, $DefaultLink, - $display_filename, $where, $what); - if(count($HookResults[1]) <= 1) { - $HookResults = do_hook("attachment $type0/*", $Links, - $startMessage, $id, $urlMailbox, $ent, $DefaultLink, - $display_filename, $where, $what); - } + $DefaultLink = + "../src/download.php?startMessage=$startMessage&passed_id=$id&mailbox=$urlMailbox&passed_ent_id=$ent"; + if ($where && $what) { + $DefaultLink .= '&where=' . urlencode($where) . '&what=' . urlencode($what); + } + $Links['download link']['text'] = _("download"); + $Links['download link']['href'] = + "../src/download.php?absolute_dl=true&passed_id=$id&mailbox=$urlMailbox&passed_ent_id=$ent"; + $ImageURL = ''; + + /* this executes the attachment hook with a specific MIME-type. + * if that doens't have results, it tries if there's a rule + * for a more generic type. */ + $HookResults = do_hook("attachment $type0/$type1", $Links, + $startMessage, $id, $urlMailbox, $ent, $DefaultLink, + $display_filename, $where, $what); + if(count($HookResults[1]) <= 1) { + $HookResults = do_hook("attachment $type0/*", $Links, + $startMessage, $id, $urlMailbox, $ent, $DefaultLink, + $display_filename, $where, $what); + } - $Links = $HookResults[1]; - $DefaultLink = $HookResults[6]; - - $body .= '  ' . - "$display_filename " . - '' . show_readable_size($message->header->size) . - '  ' . - "[ $type0/$type1 ] " . - ''; - if ($message->header->description) - $body .= '' . htmlspecialchars($message->header->description) . ''; - $body .= ' '; - - - $SkipSpaces = 1; - foreach ($Links as $Val) { - if ($SkipSpaces) { - $SkipSpaces = 0; - } else { - $body .= '  |  '; - } - $body .= '' . $Val['text'] . ''; - } + $Links = $HookResults[1]; + $DefaultLink = $HookResults[6]; + + $body .= '  ' . + "$display_filename " . + '' . show_readable_size($message->header->size) . + '  ' . + "[ $type0/$type1 ] " . + ''; + if ($message->header->description) { + $body .= '' . htmlspecialchars(_($message->header->description)) . ''; + } + $body .= ' '; - unset($Links); - $body .= "\n"; - } - } else { - for ($i = 0; $i < count($message->entities); $i++) { - $body .= formatAttachments ($message->entities[$i], $ent_id, $mailbox, $id); + $SkipSpaces = 1; + foreach ($Links as $Val) { + if ($SkipSpaces) { + $SkipSpaces = 0; + } else { + $body .= '  |  '; + } + $body .= '' . $Val['text'] . ''; + } + + unset($Links); + + $body .= "\n"; + } + } else { + for ($i = 0; $i < count($message->entities); $i++) { + $body .= formatAttachments($message->entities[$i], $ent_id, $mailbox, $id); + } } - } - return( $body ); - } + } + return( $body ); } diff --git a/functions/smtp.php b/functions/smtp.php index 86f47472..8ad4d243 100644 --- a/functions/smtp.php +++ b/functions/smtp.php @@ -108,13 +108,13 @@ function expandRcptAddrs ($array) { } -/* Attach the files that are due to be attached +/* Attach the files that are due to be attached */ function attachFiles ($fp) { global $attachments, $attachment_dir, $username; - + $length = 0; - + $hashed_attachment_dir = getHashedDir($username, $attachment_dir); if (isMultipart()) { foreach ($attachments as $info) { @@ -124,21 +124,26 @@ function attachFiles ($fp) { else { $filetype = 'application/octet-stream'; } - - $header = '--'.mimeBoundary()."\r\n"; - $header .= "Content-Type: $filetype; name=\"" . - $info['remotefilename'] . "\"\r\n"; - $header .= "Content-Disposition: attachment; filename=\"" . - $info['remotefilename'] . "\"\r\n"; - - /* Use 'rb' for NT systems -- read binary - * Unix doesn't care -- everything's binary! :-) + + $header = '--' . mimeBoundary() . "\r\n"; + if ( isset($info['remotefilename']) && $info['remotefilename'] != '') { + $header .= "Content-Type: $filetype; name=\"" . + $info['remotefilename'] . "\"\r\n"; + $header .= "Content-Disposition: attachment; filename=\"" . + $info['remotefilename'] . "\"\r\n"; + } else { + $header .= "Content-Type: $filetype;\r\n"; + } + + + /* Use 'rb' for NT systems -- read binary + * Unix doesn't care -- everything's binary! :-) */ - + $filename = $hashed_attachment_dir . '/' . $info['localfilename']; $file = fopen ($filename, 'rb'); if (substr($filetype, 0, 5) == 'text/' || - $filetype == 'message/rfc822') { + $filetype == 'message/rfc822' || $filetype == 'message/disposition-notification' ) { $header .= "\r\n"; fputs ($fp, $header); $length += strlen($header); @@ -190,12 +195,13 @@ function deleteAttachments() { */ function mimeBoundary () { static $mimeBoundaryString; - - if ($mimeBoundaryString == "") { - $mimeBoundaryString = "----=_" . - GenerateRandomString(60, '\'()+,-./:=?_', 7); + + if ( !isset( $mimeBoundaryString ) || + $mimeBoundaryString == '') { + $mimeBoundaryString = '----=_' . date( 'YmdHis' ) . '_' . + mt_rand( 10000, 99999 ); } - + return $mimeBoundaryString; } @@ -225,11 +231,12 @@ function timezone () { } /* Print all the needed RFC822 headers */ -function write822Header ($fp, $t, $c, $b, $subject, $more_headers) { +function write822Header ($fp, $t, $c, $b, $subject, $MDN, $more_headers) { global $REMOTE_ADDR, $SERVER_NAME, $REMOTE_PORT; global $data_dir, $username, $popuser, $domain, $version, $useSendmail; global $default_charset, $HTTP_VIA, $HTTP_X_FORWARDED_FOR; global $REMOTE_HOST, $identity; + global $request_mdn; /* Storing the header to make sure the header is the same * everytime the header is printed. @@ -281,7 +288,7 @@ function write822Header ($fp, $t, $c, $b, $subject, $more_headers) { else { $received_from = $REMOTE_ADDR; } - + if (isset($HTTP_VIA) || isset ($HTTP_X_FORWARDED_FOR)) { if ($HTTP_X_FORWARDED_FOR == '') { $HTTP_X_FORWARDED_FOR = 'unknown'; @@ -301,6 +308,10 @@ function write822Header ($fp, $t, $c, $b, $subject, $more_headers) { $header .= "From: $from\r\n"; $header .= "To: $to_list\r\n"; // Who it's TO + if (isset($request_mdn)) { + $more_headers["Disposition-Notification-To"] = "$from_addr"; + } + /* Insert headers from the $more_headers array */ if(is_array($more_headers)) { reset($more_headers); @@ -325,14 +336,23 @@ function write822Header ($fp, $t, $c, $b, $subject, $more_headers) { } $header .= "X-Mailer: SquirrelMail (version $version)\r\n"; /* Identify SquirrelMail */ - + /* Do the MIME-stuff */ $header .= "MIME-Version: 1.0\r\n"; if (isMultipart()) { - $header .= 'Content-Type: multipart/mixed; boundary="'; - $header .= mimeBoundary(); - $header .= "\"\r\n"; + if ($MDN) { + $header .= "Content-Type: multipart/report;\r\n"; + $header .= " report-type=disposition-notification;\r\n"; + $header .= ' boundary="'; + $header .= mimeBoundary(); + $header .= "\"\r\n"; + } + else { + $header .= 'Content-Type: multipart/mixed; boundary="'; + $header .= mimeBoundary(); + $header .= "\"\r\n"; + } } else { if ($default_charset != '') { $header .= "Content-Type: text/plain; charset=$default_charset\r\n"; @@ -393,7 +413,7 @@ function writeBody ($fp, $passedBody) { /* Send mail using the sendmail command */ -function sendSendmail($t, $c, $b, $subject, $body, $more_headers) { +function sendSendmail($t, $c, $b, $subject, $body, $MDN, $more_headers) { global $sendmail_path, $popuser, $username, $domain; /* Build envelope sender address. Make sure it doesn't contain @@ -412,7 +432,7 @@ function sendSendmail($t, $c, $b, $subject, $body, $more_headers) { $fp = popen (escapeshellcmd("$sendmail_path -t -f$envelopefrom"), "w"); } - $headerlength = write822Header ($fp, $t, $c, $b, $subject, $more_headers); + $headerlength = write822Header ($fp, $t, $c, $b, $subject, $MDN, $more_headers); $bodylength = writeBody($fp, $body); pclose($fp); @@ -431,7 +451,7 @@ function smtpReadData($smtpConnection) { } } -function sendSMTP($t, $c, $b, $subject, $body, $more_headers) { +function sendSMTP($t, $c, $b, $subject, $body, $MDN, $more_headers) { global $username, $popuser, $domain, $version, $smtpServerAddress, $smtpPort, $data_dir, $color, $use_authenticated_smtp, $identity, $key, $onetimepad; @@ -477,7 +497,7 @@ function sendSMTP($t, $c, $b, $subject, $body, $more_headers) { if (errorCheck($tmp, $smtpConnection)!=5) { return(0); } - + fputs($smtpConnection, base64_encode ($username) . "\r\n"); $tmp = fgets($smtpConnection, 1024); if (errorCheck($tmp, $smtpConnection)!=5) { @@ -516,20 +536,20 @@ function sendSMTP($t, $c, $b, $subject, $body, $more_headers) { for ($i = 0; $i < count($bcc); $i++) { fputs($smtpConnection, "RCPT TO: $bcc[$i]\r\n"); $tmp = fgets($smtpConnection, 1024); - if (errorCheck($tmp, $smtpConnection)!=5) { + if (errorCheck($tmp, $smtpConnection)!=5) { return(0); } } - + /* Lets start sending the actual message */ fputs($smtpConnection, "DATA\r\n"); $tmp = fgets($smtpConnection, 1024); if (errorCheck($tmp, $smtpConnection)!=5) { return(0); } - + /* Send the message */ - $headerlength = write822Header ($smtpConnection, $t, $c, $b, $subject, $more_headers); + $headerlength = write822Header ($smtpConnection, $t, $c, $b, $subject, $MDN, $more_headers); $bodylength = writeBody($smtpConnection, $body); fputs($smtpConnection, ".\r\n"); /* end the DATA part */ @@ -655,22 +675,24 @@ function errorCheck($line, $smtpConnection, $verbose = false) { return $err_num; } -function sendMessage($t, $c, $b, $subject, $body, $reply_id, $prio = 3) { - global $useSendmail, $msg_id, $is_reply, $mailbox, $onetimepad; - global $data_dir, $username, $domain, $key, $version, $sent_folder, $imapServerAddress, $imapPort; - global $default_use_priority; - global $more_headers; +function sendMessage($t, $c, $b, $subject, $body, $reply_id, $MDN, $prio = 3) { + global $useSendmail, $msg_id, $is_reply, $mailbox, $onetimepad, + $data_dir, $username, $domain, $key, $version, $sent_folder, $imapServerAddress, $imapPort, + $default_use_priority, + $more_headers, + $request_mdn; + $more_headers = Array(); - do_hook("smtp_send"); - + do_hook('smtp_send'); + $imap_stream = sqimap_login($username, $key, $imapServerAddress, $imapPort, 1); - + if (isset($reply_id) && $reply_id) { sqimap_mailbox_select ($imap_stream, $mailbox); sqimap_messages_flag ($imap_stream, $reply_id, $reply_id, 'Answered'); - - /* Insert In-Reply-To and References headers if the + + /* Insert In-Reply-To and References headers if the * message-id of the message we reply to is set (longer than "<>") * The References header should really be the old Referenced header * with the message ID appended, but it can be only the message ID too. @@ -684,29 +706,28 @@ function sendMessage($t, $c, $b, $subject, $body, $reply_id, $prio = 3) { if ($default_use_priority) { $more_headers = array_merge($more_headers, createPriorityHeaders($prio)); } - + /* In order to remove the problem of users not able to create * messages with "." on a blank line, RFC821 has made provision * in section 4.5.2 (Transparency). */ $body = ereg_replace("\n\\.", "\n..", $body); $body = ereg_replace("^\\.", "..", $body); - + /* this is to catch all plain \n instances and * replace them with \r\n. All newlines were converted * into just \n inside the compose.php file. */ $body = ereg_replace("\n", "\r\n", $body); - + if ($useSendmail) { - $length = sendSendmail($t, $c, $b, $subject, $body, $more_headers); + $length = sendSendmail($t, $c, $b, $subject, $body, $MDN, $more_headers); } else { - $length = sendSMTP($t, $c, $b, $subject, $body, $more_headers); + $length = sendSMTP($t, $c, $b, $subject, $body, $MDN, $more_headers); } - if (sqimap_mailbox_exists ($imap_stream, $sent_folder)) { sqimap_append ($imap_stream, $sent_folder, $length); - write822Header ($imap_stream, $t, $c, $b, $subject, $more_headers); + write822Header ($imap_stream, $t, $c, $b, $subject, $MDN, $more_headers); writeBody ($imap_stream, $body); sqimap_append_done ($imap_stream); } @@ -714,28 +735,29 @@ function sendMessage($t, $c, $b, $subject, $body, $reply_id, $prio = 3) { /* Delete the files uploaded for attaching (if any). * only if $length != 0 (if there was no error) */ - if ($length) + if ($length) { ClearAttachments(); - + } + return $length; } function createPriorityHeaders($prio) { $prio_headers = Array(); - $prio_headers["X-Priority"] = $prio; - + $prio_headers['X-Priority'] = $prio; + switch($prio) { - case 1: $prio_headers["Importance"] = "High"; - $prio_headers["X-MSMail-Priority"] = "High"; + case 1: $prio_headers['Importance'] = 'High'; + $prio_headers['X-MSMail-Priority'] = 'High'; break; - - case 3: $prio_headers["Importance"] = "Normal"; - $prio_headers["X-MSMail-Priority"] = "Normal"; + + case 3: $prio_headers['Importance'] = 'Normal'; + $prio_headers['X-MSMail-Priority'] = 'Normal'; break; - + case 5: - $prio_headers["Importance"] = "Low"; - $prio_headers["X-MSMail-Priority"] = "Low"; + $prio_headers['Importance'] = 'Low'; + $prio_headers['X-MSMail-Priority'] = 'Low'; break; } return $prio_headers; diff --git a/locale/es_ES/LC_MESSAGES/squirrelmail.mo b/locale/es_ES/LC_MESSAGES/squirrelmail.mo index ea5ff06c1c318ac62ac2bbc952a935629bd7ba9c..375e8d6901d36bcd69fdaa307fa767684511b22b 100644 GIT binary patch delta 18257 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 delta 18560 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 Z?i)LpTj9>ifZQMMmk-V@^UvXs{{y-|ebE2_ diff --git a/locale/es_ES/LC_MESSAGES/squirrelmail.po b/locale/es_ES/LC_MESSAGES/squirrelmail.po index fcf6c814..1154ab78 100644 --- a/locale/es_ES/LC_MESSAGES/squirrelmail.po +++ b/locale/es_ES/LC_MESSAGES/squirrelmail.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: $Id$\n" -"POT-Creation-Date: 2002-02-04 15:51+0100\n" -"PO-Revision-Date: 2002-01-19 12:19CET\n" +"POT-Creation-Date: 2002-02-09 09:08+0100\n" +"PO-Revision-Date: 2002-02-09 09:15GMT+1\n" "Last-Translator: Philippe Mingo \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" @@ -41,20 +41,20 @@ msgstr "Informaci msgid "Source" msgstr "Origen" -#: squirrelmail/functions/mailbox_display.php:567 +#: squirrelmail/functions/mailbox_display.php:570 #: squirrelmail/plugins/filters/options.php:88 #: squirrelmail/src/addrbook_search_html.php:82 #: squirrelmail/src/compose.php:309 squirrelmail/src/download.php:132 #: squirrelmail/src/download.php:139 #: squirrelmail/src/options_highlight.php:325 #: squirrelmail/src/printer_friendly_bottom.php:96 -#: squirrelmail/src/search.php:331 +#: squirrelmail/src/search.php:339 msgid "To" msgstr "Para" #: squirrelmail/plugins/filters/options.php:91 #: squirrelmail/src/addrbook_search_html.php:84 -#: squirrelmail/src/options_highlight.php:328 squirrelmail/src/search.php:330 +#: squirrelmail/src/options_highlight.php:328 squirrelmail/src/search.php:338 msgid "Cc" msgstr "Cc" @@ -85,10 +85,10 @@ msgstr "en" msgid "All address books" msgstr "Todos los libros de direcciones" -#: squirrelmail/functions/page_header.php:134 +#: squirrelmail/functions/page_header.php:130 #: squirrelmail/src/addrbook_search.php:191 #: squirrelmail/src/addrbook_search_html.php:151 -#: squirrelmail/src/search.php:196 +#: squirrelmail/src/search.php:202 msgid "Search" msgstr "Buscar" @@ -98,23 +98,23 @@ msgid "List all" msgstr "Listar todos" #: squirrelmail/src/addrbook_search.php:213 -#: squirrelmail/src/addrbook_search_html.php:177 +#: squirrelmail/src/addrbook_search_html.php:182 #, c-format msgid "Unable to list addresses from %s" msgstr "Imposible listar direcciones desde %s" #: squirrelmail/src/addrbook_search.php:239 -#: squirrelmail/src/addrbook_search_html.php:205 +#: squirrelmail/src/addrbook_search_html.php:207 msgid "Your search failed with the following error(s)" msgstr "La busqueda falló con los siguientes errores" #: squirrelmail/src/addrbook_search.php:159 #: squirrelmail/src/addrbook_search.php:246 -#: squirrelmail/src/addrbook_search_html.php:210 +#: squirrelmail/src/addrbook_search_html.php:212 msgid "No persons matching your search was found" msgstr "No se encontró una persona con esos datos" -#: squirrelmail/src/addrbook_search_html.php:223 +#: squirrelmail/src/addrbook_search_html.php:225 msgid "Return" msgstr "Volver" @@ -203,29 +203,29 @@ msgstr "No se puede mover/copiar el archivo. Archivo no adjuntado" msgid "Original Message" msgstr "Mensaje Original" -#: squirrelmail/functions/mailbox_display.php:583 +#: squirrelmail/functions/mailbox_display.php:586 #: squirrelmail/plugins/filters/options.php:97 #: squirrelmail/src/compose.php:305 squirrelmail/src/download.php:130 #: squirrelmail/src/download.php:135 #: squirrelmail/src/options_highlight.php:334 #: squirrelmail/src/options_order.php:40 #: squirrelmail/src/printer_friendly_bottom.php:101 -#: squirrelmail/src/search.php:328 +#: squirrelmail/src/search.php:336 msgid "Subject" msgstr "Asunto" -#: squirrelmail/functions/mailbox_display.php:569 +#: squirrelmail/functions/mailbox_display.php:572 #: squirrelmail/plugins/filters/options.php:85 #: squirrelmail/src/compose.php:306 squirrelmail/src/download.php:131 #: squirrelmail/src/download.php:137 #: squirrelmail/src/options_highlight.php:322 #: squirrelmail/src/options_order.php:38 #: squirrelmail/src/printer_friendly_bottom.php:95 -#: squirrelmail/src/search.php:329 +#: squirrelmail/src/search.php:337 msgid "From" msgstr "De" -#: squirrelmail/functions/mailbox_display.php:577 +#: squirrelmail/functions/mailbox_display.php:580 #: squirrelmail/src/compose.php:307 squirrelmail/src/download.php:133 #: squirrelmail/src/download.php:141 squirrelmail/src/options_order.php:39 #: squirrelmail/src/printer_friendly_bottom.php:100 @@ -269,7 +269,7 @@ msgstr "Agregar" msgid "Delete selected attachments" msgstr "Borrar Adjuntos Seleccionados" -#: squirrelmail/functions/page_header.php:128 squirrelmail/src/compose.php:609 +#: squirrelmail/functions/page_header.php:124 squirrelmail/src/compose.php:609 #: squirrelmail/src/compose.php:613 squirrelmail/src/compose.php:617 msgid "Addresses" msgstr "Direcciones" @@ -282,7 +282,7 @@ msgstr "Guardar Borrador" msgid "Priority" msgstr "Prioridad" -#: squirrelmail/plugins/administrator/defines.php:189 +#: squirrelmail/plugins/administrator/defines.php:191 #: squirrelmail/plugins/calendar/functions.php:98 #: squirrelmail/src/compose.php:629 squirrelmail/src/read_body.php:424 msgid "High" @@ -293,7 +293,7 @@ msgstr "Alta" msgid "Normal" msgstr "Normal" -#: squirrelmail/plugins/administrator/defines.php:186 +#: squirrelmail/plugins/administrator/defines.php:188 #: squirrelmail/src/compose.php:631 squirrelmail/src/read_body.php:430 msgid "Low" msgstr "Baja" @@ -325,7 +325,7 @@ msgstr "Ver un texto adosado" msgid "View message" msgstr "Ver el mensaje" -#: squirrelmail/functions/mime.php:623 squirrelmail/src/download.php:41 +#: squirrelmail/functions/mime.php:636 squirrelmail/src/download.php:41 #: squirrelmail/src/image.php:44 squirrelmail/src/vcard.php:196 msgid "Download this as a file" msgstr "Bajar este mensaje como un archivo" @@ -338,7 +338,7 @@ msgstr "Nombre de Carpeta Invalido. Por favor, seleccione uno diferente." msgid "Click here to go back" msgstr "Pulse aquí para volver" -#: squirrelmail/functions/page_header.php:130 squirrelmail/src/folders.php:29 +#: squirrelmail/functions/page_header.php:126 squirrelmail/src/folders.php:29 #: squirrelmail/src/left_main.php:238 msgid "Folders" msgstr "Carpetas" @@ -403,7 +403,7 @@ msgstr "No se encontraron carpetas" msgid "Delete Folder" msgstr "Borrar Carpeta" -#: squirrelmail/functions/mailbox_display.php:540 +#: squirrelmail/functions/mailbox_display.php:543 #: squirrelmail/plugins/filters/options.php:154 #: squirrelmail/plugins/mail_fetch/options.php:163 #: squirrelmail/plugins/mail_fetch/options.php:170 @@ -448,7 +448,7 @@ msgstr "Nuevo nombre:" msgid "Submit" msgstr "Enviar" -#: squirrelmail/functions/page_header.php:136 +#: squirrelmail/functions/page_header.php:132 #: squirrelmail/plugins/listcommands/setup.php:37 squirrelmail/src/help.php:91 msgid "Help" msgstr "Ayuda" @@ -466,31 +466,31 @@ msgstr "" msgid "Some or all of the help documents are not present!" msgstr "Algunos o todos los documentos de ayuda no fueron encontrados" -#: squirrelmail/src/help.php:170 squirrelmail/src/help.php:193 +#: squirrelmail/src/help.php:169 squirrelmail/src/help.php:191 msgid "Table of Contents" msgstr "Tabla de Contenidos" -#: squirrelmail/functions/mailbox_display.php:743 #: squirrelmail/functions/mailbox_display.php:746 #: squirrelmail/functions/mailbox_display.php:749 +#: squirrelmail/functions/mailbox_display.php:752 #: squirrelmail/plugins/delete_move_next/setup.php:149 #: squirrelmail/plugins/delete_move_next/setup.php:151 -#: squirrelmail/src/help.php:187 squirrelmail/src/help.php:191 +#: squirrelmail/src/help.php:185 squirrelmail/src/help.php:189 #: squirrelmail/src/read_body.php:495 squirrelmail/src/read_body.php:497 msgid "Previous" msgstr "Anterior" -#: squirrelmail/functions/mailbox_display.php:744 #: squirrelmail/functions/mailbox_display.php:747 #: squirrelmail/functions/mailbox_display.php:750 +#: squirrelmail/functions/mailbox_display.php:753 #: squirrelmail/plugins/delete_move_next/setup.php:154 #: squirrelmail/plugins/delete_move_next/setup.php:156 -#: squirrelmail/src/help.php:195 squirrelmail/src/help.php:198 +#: squirrelmail/src/help.php:193 squirrelmail/src/help.php:196 #: squirrelmail/src/read_body.php:501 squirrelmail/src/read_body.php:503 msgid "Next" msgstr "Siguiente" -#: squirrelmail/src/help.php:221 +#: squirrelmail/src/help.php:219 msgid "Top" msgstr "Arriba" @@ -498,10 +498,11 @@ msgstr "Arriba" msgid "Viewing an image attachment" msgstr "Viendo una imagen adjunta" -#: squirrelmail/functions/page_header.php:107 +#: squirrelmail/functions/mailbox_display.php:529 +#: squirrelmail/functions/page_header.php:103 #: squirrelmail/plugins/mail_fetch/options.php:137 #: squirrelmail/plugins/mail_fetch/options.php:214 -#: squirrelmail/src/left_main.php:73 +#: squirrelmail/src/left_main.php:73 squirrelmail/src/search.php:305 msgid "INBOX" msgstr "ENTRADA" @@ -812,18 +813,17 @@ msgstr "Memorizar B msgid "Disabled" msgstr "Desactivado" -#: squirrelmail/functions/page_header.php:132 +#: squirrelmail/functions/page_header.php:128 #: squirrelmail/plugins/filters/options.php:62 #: squirrelmail/plugins/newmail/newmail_opt.php:34 -#: squirrelmail/plugins/spamcop/options.php:28 #: squirrelmail/plugins/translate/options.php:94 -#: squirrelmail/src/options.php:165 squirrelmail/src/options_highlight.php:62 +#: squirrelmail/src/options.php:198 squirrelmail/src/options_highlight.php:62 #: squirrelmail/src/options_identities.php:44 #: squirrelmail/src/options_order.php:31 msgid "Options" msgstr "Opciones" -#: squirrelmail/src/options.php:113 squirrelmail/src/options.php:268 +#: squirrelmail/src/options.php:146 squirrelmail/src/options.php:297 #: squirrelmail/src/options_highlight.php:62 msgid "Message Highlighting" msgstr "Resaltado de Mensajes" @@ -974,7 +974,7 @@ msgstr "Ponerla por omisi msgid "Move Up" msgstr "Mover Arriba" -#: squirrelmail/src/options.php:125 squirrelmail/src/options.php:284 +#: squirrelmail/src/options.php:158 squirrelmail/src/options.php:313 #: squirrelmail/src/options_order.php:31 msgid "Index Order" msgstr "Orden de índice" @@ -987,7 +987,7 @@ msgstr "Checkbox" msgid "Flags" msgstr "Indicadores" -#: squirrelmail/functions/mailbox_display.php:589 +#: squirrelmail/functions/mailbox_display.php:592 #: squirrelmail/src/options_order.php:42 msgid "Size" msgstr "Tamaño" @@ -1085,31 +1085,31 @@ msgstr "Preceder firma con '-- '" msgid "Signature" msgstr "Firma" -#: squirrelmail/src/options.php:101 squirrelmail/src/options.php:252 +#: squirrelmail/src/options.php:134 squirrelmail/src/options.php:281 msgid "Personal Information" msgstr "Información Personal" -#: squirrelmail/src/options.php:107 squirrelmail/src/options.php:260 +#: squirrelmail/src/options.php:140 squirrelmail/src/options.php:289 msgid "Display Preferences" msgstr "Preferencias de Pantalla" -#: squirrelmail/src/options.php:119 squirrelmail/src/options.php:276 +#: squirrelmail/src/options.php:152 squirrelmail/src/options.php:305 msgid "Folder Preferences" msgstr "Preferencias de Carpetas" -#: squirrelmail/src/options.php:235 +#: squirrelmail/src/options.php:264 msgid "Successfully Saved Options" msgstr "Opciones Actualizadas" -#: squirrelmail/src/options.php:240 +#: squirrelmail/src/options.php:269 msgid "Refresh Folder List" msgstr "Actualizar Carpetas" -#: squirrelmail/src/options.php:242 +#: squirrelmail/src/options.php:271 msgid "Refresh Page" msgstr "Actualizar Página" -#: squirrelmail/src/options.php:254 +#: squirrelmail/src/options.php:283 msgid "" "This contains personal information about yourself such as your name, your " "email address, etc." @@ -1117,7 +1117,7 @@ msgstr "" "Esta opción contiene su información personal, como su nombre, su dirección " "de correo electrónico, etc..." -#: squirrelmail/src/options.php:262 +#: squirrelmail/src/options.php:291 msgid "" "You can change the way that SquirrelMail looks and displays information to " "you, such as the colors, the language, and other settings." @@ -1125,7 +1125,7 @@ msgstr "" "Puede cambiar el aspecto SquirreMail y la forma de mostrarla información, " "como el idioma, los colores, y otras configuraciones." -#: squirrelmail/src/options.php:270 +#: squirrelmail/src/options.php:299 msgid "" "Based upon given criteria, incoming messages can have different background " "colors in the message list. This helps to easily distinguish who the " @@ -1136,14 +1136,13 @@ msgstr "" "distinguir fácilmente de quien provienen. (Especialmente para listas de " "correo)." -#: squirrelmail/src/options.php:278 -msgid "" -"These settings change the way your folders are displayed and manipulated." +#: squirrelmail/src/options.php:307 +msgid "These settings change the way your folders are displayed and manipulated." msgstr "" "Estas opciones cambian la forma en la que se muestran y manipulan las " "carpetas." -#: squirrelmail/src/options.php:286 +#: squirrelmail/src/options.php:315 msgid "" "The order of the message index can be rearranged and changed to contain the " "headers in any order you want." @@ -1243,47 +1242,47 @@ msgstr "Se ha producido un error contactando con el servidor." msgid "Contact your administrator for help." msgstr "Contacte con su administrador." -#: squirrelmail/src/search.php:232 +#: squirrelmail/src/search.php:237 msgid "edit" msgstr "editar" -#: squirrelmail/src/search.php:239 squirrelmail/src/search.php:278 +#: squirrelmail/src/search.php:244 squirrelmail/src/search.php:283 msgid "search" msgstr "buscar" -#: squirrelmail/src/search.php:242 +#: squirrelmail/src/search.php:247 msgid "delete" msgstr "borrar" -#: squirrelmail/src/search.php:270 +#: squirrelmail/src/search.php:275 msgid "save" msgstr "guardar" -#: squirrelmail/src/search.php:281 +#: squirrelmail/src/search.php:286 msgid "forget" msgstr "olvidar" -#: squirrelmail/src/search.php:290 +#: squirrelmail/src/search.php:295 msgid "Current Search" msgstr "Búsqueda Actual" -#: squirrelmail/src/search.php:326 +#: squirrelmail/src/search.php:334 msgid "Body" msgstr "Cuerpo" -#: squirrelmail/src/search.php:327 +#: squirrelmail/src/search.php:335 msgid "Everywhere" msgstr "Todos lados" -#: squirrelmail/src/search.php:354 squirrelmail/src/search.php:377 +#: squirrelmail/src/search.php:362 squirrelmail/src/search.php:391 msgid "Search Results" msgstr "Resultado de la búsqueda" -#: squirrelmail/src/search.php:367 +#: squirrelmail/src/search.php:382 msgid "No Messages found" msgstr "No se encontraron mensajes" -#: squirrelmail/functions/page_header.php:120 squirrelmail/src/signout.php:72 +#: squirrelmail/functions/page_header.php:116 squirrelmail/src/signout.php:72 msgid "Sign Out" msgstr "Desconectarse" @@ -1587,7 +1586,7 @@ msgstr "j/m/Y" #: squirrelmail/functions/db_prefs.php:59 #: squirrelmail/functions/db_prefs.php:102 #: squirrelmail/functions/db_prefs.php:105 -#: squirrelmail/functions/db_prefs.php:243 +#: squirrelmail/functions/db_prefs.php:251 #, c-format msgid "Preference database error (%s). Exiting abnormally" msgstr "Archivo de preferencias %s no encontrado. Saliendo anormalmente." @@ -1706,7 +1705,7 @@ msgstr "N #: squirrelmail/functions/imap_messages.php:195 #: squirrelmail/functions/imap_messages.php:440 #: squirrelmail/functions/imap_messages.php:495 -#: squirrelmail/functions/mailbox_display.php:902 +#: squirrelmail/functions/mailbox_display.php:905 msgid "(no subject)" msgstr "(sin asunto)" @@ -1726,19 +1725,19 @@ msgstr "(remitente desconocido)" msgid "No Messages Found" msgstr "No se Encontraron Mensajes" -#: squirrelmail/functions/imap_search.php:181 -#: squirrelmail/functions/imap_search.php:189 +#: squirrelmail/functions/imap_search.php:187 +#: squirrelmail/functions/imap_search.php:195 msgid "Found" msgstr "Encontrado" -#: squirrelmail/functions/imap_search.php:181 -#: squirrelmail/functions/imap_search.php:189 +#: squirrelmail/functions/imap_search.php:187 +#: squirrelmail/functions/imap_search.php:195 msgid "messages" msgstr "mensajes" #: squirrelmail/functions/mailbox_display.php:156 msgid "A" -msgstr "" +msgstr "C" #: squirrelmail/functions/mailbox_display.php:429 msgid "THIS FOLDER IS EMPTY" @@ -1752,53 +1751,53 @@ msgstr "Mover seleccionados a:" msgid "Transform Selected Messages" msgstr "Marcar mensajes seleccionados como" -#: squirrelmail/functions/mailbox_display.php:532 +#: squirrelmail/functions/mailbox_display.php:535 msgid "Move" msgstr "Mover" -#: squirrelmail/functions/mailbox_display.php:536 +#: squirrelmail/functions/mailbox_display.php:539 msgid "Expunge" msgstr "Purgar" -#: squirrelmail/functions/mailbox_display.php:536 +#: squirrelmail/functions/mailbox_display.php:539 msgid "mailbox" msgstr "buzón" -#: squirrelmail/functions/mailbox_display.php:538 +#: squirrelmail/functions/mailbox_display.php:541 msgid "Read" msgstr "Leído" -#: squirrelmail/functions/mailbox_display.php:539 +#: squirrelmail/functions/mailbox_display.php:542 msgid "Unread" msgstr "No Leído" -#: squirrelmail/functions/mailbox_display.php:635 +#: squirrelmail/functions/mailbox_display.php:638 msgid "Toggle All" msgstr "Cambia Todos" -#: squirrelmail/functions/mailbox_display.php:663 +#: squirrelmail/functions/mailbox_display.php:666 msgid "Unselect All" msgstr "De-seleccionar Todos" -#: squirrelmail/functions/mailbox_display.php:665 +#: squirrelmail/functions/mailbox_display.php:668 msgid "Select All" msgstr "Seleccionar Todos" -#: squirrelmail/functions/mailbox_display.php:682 +#: squirrelmail/functions/mailbox_display.php:685 #, c-format msgid "Viewing Messages: %s to %s (%s total)" msgstr "Viendo Mensajes: del %s al %s (total %s)" -#: squirrelmail/functions/mailbox_display.php:684 +#: squirrelmail/functions/mailbox_display.php:687 #, c-format msgid "Viewing Message: %s (1 total)" msgstr "Viendo Mensaje: %s (total 1)" -#: squirrelmail/functions/mailbox_display.php:869 +#: squirrelmail/functions/mailbox_display.php:872 msgid "Paginate" msgstr "Paginar" -#: squirrelmail/functions/mailbox_display.php:876 +#: squirrelmail/functions/mailbox_display.php:879 msgid "Show All" msgstr "Todos" @@ -1808,21 +1807,29 @@ msgstr "" "Se produjo un error al descodificar la estructura MIME. ¡Notifíquelo como un " "error del programa!" -#: squirrelmail/functions/mime.php:430 +#: squirrelmail/functions/mime.php:440 msgid "" "Body retrieval error. The reason for this is most probably that the message " "is malformed. Please help us making future versions better by submitting " "this message to the developers knowledgebase!" msgstr "" -"Error de recuperación: El motivo de este error se deba probablemente a que " +"Error de recuperación: El motivo de este error se debe probablemente a que " "el mensaje está mal formado. Por favor, ayúdenos a depurar versiones futuras " "enviando este mensaje al centro de desarrollo." -#: squirrelmail/functions/mime.php:432 +#: squirrelmail/functions/mime.php:442 +msgid "Submit message" +msgstr "Enviar mensaje" + +#: squirrelmail/functions/mime.php:444 +msgid "Command:" +msgstr "Comando:" + +#: squirrelmail/functions/mime.php:445 msgid "Response:" msgstr "Contestación:" -#: squirrelmail/functions/mime.php:433 +#: squirrelmail/functions/mime.php:446 #: squirrelmail/plugins/calendar/event_create.php:118 #: squirrelmail/plugins/calendar/event_delete.php:38 #: squirrelmail/plugins/calendar/event_edit.php:101 @@ -1830,19 +1837,19 @@ msgstr "Contestaci msgid "Message:" msgstr "Mensaje:" -#: squirrelmail/functions/mime.php:434 +#: squirrelmail/functions/mime.php:447 msgid "FETCH line:" -msgstr "Recojer línea:" +msgstr "Línea contestada:" -#: squirrelmail/functions/mime.php:652 +#: squirrelmail/functions/mime.php:665 msgid "Attachments" msgstr "Ficheros adjuntos" -#: squirrelmail/functions/mime.php:691 +#: squirrelmail/functions/mime.php:704 msgid "download" msgstr "descargar" -#: squirrelmail/functions/mime.php:978 +#: squirrelmail/functions/mime.php:999 #: squirrelmail/plugins/calendar/event_create.php:53 #: squirrelmail/plugins/calendar/event_create.php:116 #: squirrelmail/plugins/calendar/event_delete.php:36 @@ -1852,7 +1859,7 @@ msgstr "descargar" msgid "Title:" msgstr "Título:" -#: squirrelmail/functions/mime.php:1148 +#: squirrelmail/functions/mime.php:1169 msgid "sec_remove_eng.png" msgstr "sec_remove_es_ES.png" @@ -1875,11 +1882,11 @@ msgstr "Si" msgid "No" msgstr "No" -#: squirrelmail/functions/page_header.php:114 +#: squirrelmail/functions/page_header.php:110 msgid "Current Folder" msgstr "Carpeta Actual" -#: squirrelmail/functions/page_header.php:126 +#: squirrelmail/functions/page_header.php:122 msgid "Compose" msgstr "Componer" @@ -2051,23 +2058,10 @@ msgstr "" "que NO se use su servicio." #: squirrelmail/plugins/filters/filters.php:560 -msgid "FREE - orbz.gst-group.co.uk - Inputs only." -msgstr "GRATUITO - orbz.gst-group.co.uk - Solo entradas." - -#: squirrelmail/plugins/filters/filters.php:568 -msgid "FREE - orbz.gst-group.co.uk - Outputs only." -msgstr "GRATUITO - orbz.gst-group.co.uk - Solo salidas." - -#: squirrelmail/plugins/filters/filters.php:576 -msgid "" -"FREE - orbz.gst-group.co.uk - mailservers that refuse or bounce email " -"addressed to postmaster@." +msgid "FREE - SPAMhaus - A list of well-known SPAM sources." msgstr "" -"GRATUITO - La lista orbz.gst-group.co.uk incluye, además de enlaces " -"abiertos, servidores que niegan el paso a mensajes para la dirección " -"postmaster@." -#: squirrelmail/plugins/filters/filters.php:584 +#: squirrelmail/plugins/filters/filters.php:568 #, c-format msgid "" "FREE, for now - SPAMCOP - An interesting solution that lists servers that " @@ -2279,8 +2273,7 @@ msgid "You must make a choice" msgstr "Debe hacer alguna elección" #: squirrelmail/plugins/squirrelspell/sqspell_functions.php:375 -msgid "" -"You can either delete your dictionary or type in the old password. Not both." +msgid "You can either delete your dictionary or type in the old password. Not both." msgstr "" "Puede borrar su diccionario o introducir la contraseña deldiccionario " "antíguo." @@ -2298,75 +2291,6 @@ msgstr "Error Descifrando el Diccionario" msgid "Cute." msgstr "Muy bonito." -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:33 -msgid "Your personal dictionary was erased." -msgstr "Se eliminó su diccionario personal." - -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:34 -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:47 -msgid "Dictionary Erased" -msgstr "Diccionario Borrado" - -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:41 -msgid "" -"Your personal dictionary was erased. Please close this window and click " -"\"Check Spelling\" button again to start your spellcheck over." -msgstr "" -"Su diccionario personal ha sido borrado. Por favor cierre estaventana y " -"pulse el botón de comprobar la ortografía de nuevo." - -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:45 -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:77 -msgid "Close this Window" -msgstr "Cerrar esta Ventana" - -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:70 -msgid "" -"Your personal dictionary was re-encrypted successfully. Now return to the " -""SpellChecker options" menu and make your selection again." -msgstr "" -"Su diccionario personal ha sido cifrado correctamente. Vuelva a la página de " -"opciones de SpellChecker y vuelva a realizar su selección." - -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:72 -msgid "Successful Re-encryption" -msgstr "Cifrado Correcto" - -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:75 -msgid "" -"Your personal dictionary was re-encrypted successfully. Please close this " -"window and click \"Check Spelling\" button again to start your spellcheck " -"over." -msgstr "" -"Su diccionario personal ha sido cifrado correctamente. Por favor cierre esta " -"venta y pulse sobre el botón \"Otrografía\" de nuevo para volver a empezar " -"la comprobación" - -#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:79 -msgid "Dictionary re-encrypted" -msgstr "Diccionario Cifrado" - -#: squirrelmail/plugins/squirrelspell/modules/crypto.mod:39 -msgid "" -"Your personal dictionary has been encrypted and is now " -"stored in an encrypted format." -msgstr "" -"Su diccionario personal ha sido cifrado y ha sido almacenado en un " -"formato cifrado." - -#: squirrelmail/plugins/squirrelspell/modules/crypto.mod:54 -msgid "" -"Your personal dictionary has been decrypted and is now " -"stored as clear text." -msgstr "" -"Su diccionario personal ha sido descifrado y se ha almacenado como " -"texto sin cifrar." - -#: squirrelmail/plugins/squirrelspell/modules/crypto.mod:65 -#: squirrelmail/plugins/squirrelspell/modules/enc_setup.mod:76 -msgid "Personal Dictionary Crypto Settings" -msgstr "Opciones de Cifrado del Diccionario Personal" - #: squirrelmail/plugins/squirrelspell/modules/check_me.mod:196 msgid "SquirrelSpell Results" msgstr "Resultados de SquirrelSpell" @@ -2472,6 +2396,75 @@ msgstr "La comprobaci msgid "No errors found" msgstr "No se encontraron errores" +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:33 +msgid "Your personal dictionary was erased." +msgstr "Se eliminó su diccionario personal." + +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:34 +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:47 +msgid "Dictionary Erased" +msgstr "Diccionario Borrado" + +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:41 +msgid "" +"Your personal dictionary was erased. Please close this window and click " +"\"Check Spelling\" button again to start your spellcheck over." +msgstr "" +"Su diccionario personal ha sido borrado. Por favor cierre estaventana y " +"pulse el botón de comprobar la ortografía de nuevo." + +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:45 +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:77 +msgid "Close this Window" +msgstr "Cerrar esta Ventana" + +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:70 +msgid "" +"Your personal dictionary was re-encrypted successfully. Now return to the " +""SpellChecker options" menu and make your selection again." +msgstr "" +"Su diccionario personal ha sido cifrado correctamente. Vuelva a la página de " +"opciones de SpellChecker y vuelva a realizar su selección." + +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:72 +msgid "Successful Re-encryption" +msgstr "Cifrado Correcto" + +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:75 +msgid "" +"Your personal dictionary was re-encrypted successfully. Please close this " +"window and click \"Check Spelling\" button again to start your spellcheck " +"over." +msgstr "" +"Su diccionario personal ha sido cifrado correctamente. Por favor cierre esta " +"venta y pulse sobre el botón \"Otrografía\" de nuevo para volver a empezar " +"la comprobación" + +#: squirrelmail/plugins/squirrelspell/modules/crypto_badkey.mod:79 +msgid "Dictionary re-encrypted" +msgstr "Diccionario Cifrado" + +#: squirrelmail/plugins/squirrelspell/modules/crypto.mod:39 +msgid "" +"Your personal dictionary has been encrypted and is now " +"stored in an encrypted format." +msgstr "" +"Su diccionario personal ha sido cifrado y ha sido almacenado en un " +"formato cifrado." + +#: squirrelmail/plugins/squirrelspell/modules/crypto.mod:54 +msgid "" +"Your personal dictionary has been decrypted and is now " +"stored as clear text." +msgstr "" +"Su diccionario personal ha sido descifrado y se ha almacenado como " +"texto sin cifrar." + +#: squirrelmail/plugins/squirrelspell/modules/crypto.mod:65 +#: squirrelmail/plugins/squirrelspell/modules/enc_setup.mod:76 +msgid "Personal Dictionary Crypto Settings" +msgstr "Opciones de Cifrado del Diccionario Personal" + #: squirrelmail/plugins/squirrelspell/modules/edit_dic.mod:28 #: squirrelmail/plugins/squirrelspell/modules/forget_me.mod:77 msgid "Personal Dictionary" @@ -2484,8 +2477,7 @@ msgstr "Su diccionario personal no contiene ninguna palabra." #: squirrelmail/plugins/squirrelspell/modules/edit_dic.mod:36 msgid "Please check any words you wish to delete from your dictionary." -msgstr "" -"Por favor marque todas las palabras que desea borrar de su diccionario." +msgstr "Por favor marque todas las palabras que desea borrar de su diccionario." #: squirrelmail/plugins/squirrelspell/modules/edit_dic.mod:58 #, c-format @@ -2538,8 +2530,7 @@ msgstr "" "el cifrado del diccionario.

" #: squirrelmail/plugins/squirrelspell/modules/enc_setup.mod:52 -msgid "" -"Please decrypt my personal dictionary and store it in a clear-text format." +msgid "Please decrypt my personal dictionary and store it in a clear-text format." msgstr "Por favor descifra mi diccionario personal y guárdalo en modo texto." #: squirrelmail/plugins/squirrelspell/modules/enc_setup.mod:55 @@ -2575,8 +2566,7 @@ msgstr "" "clave nueva.

" #: squirrelmail/plugins/squirrelspell/modules/enc_setup.mod:70 -msgid "" -"Please encrypt my personal dictionary and store it in an encrypted format." +msgid "Please encrypt my personal dictionary and store it in an encrypted format." msgstr "Por favor cifra mi diccionario." #: squirrelmail/plugins/squirrelspell/modules/forget_me.mod:28 @@ -2692,15 +2682,13 @@ msgid "Your server options are as follows:" msgstr "Estas son sus opciones de servidor:" #: squirrelmail/plugins/translate/options.php:102 -msgid "" -"13 language pairs, maximum of 1000 characters translated, powered by Systran" +msgid "13 language pairs, maximum of 1000 characters translated, powered by Systran" msgstr "" "13 pares de idiomas, un máximo de 1000 caracteres traducidos, motor de " "Systran" #: squirrelmail/plugins/translate/options.php:105 -msgid "" -"10 language pairs, maximum of 25 kilobytes translated, powered by Systran" +msgid "10 language pairs, maximum of 25 kilobytes translated, powered by Systran" msgstr "10 pares de idiomas, máximo de 25 ks. traducidos, motor de Systran" #: squirrelmail/plugins/translate/options.php:108 @@ -2716,8 +2704,7 @@ msgstr "" "Translation Experts" #: squirrelmail/plugins/translate/options.php:114 -msgid "" -"8 language pairs, no known limits, powered by GPLTrans (free, open source)" +msgid "8 language pairs, no known limits, powered by GPLTrans (free, open source)" msgstr "" "8 pares de idiomas, no hay límites conocidos, motor GPLTrans (gratuito, open " "source)" @@ -4059,84 +4046,88 @@ msgstr " msgid "Default Javascript Adrressbook" msgstr "¿Usar Javasrcipt por omisión en la agenda?" -#: squirrelmail/plugins/administrator/defines.php:164 +#: squirrelmail/plugins/administrator/defines.php:163 +msgid "Auto delete folders" +msgstr "Borrado automático de carpetas" + +#: squirrelmail/plugins/administrator/defines.php:166 msgid "General Options" msgstr "Opciones Generales" -#: squirrelmail/plugins/administrator/defines.php:166 +#: squirrelmail/plugins/administrator/defines.php:168 msgid "Default Charset" msgstr "Juego de caracteres por omisión" -#: squirrelmail/plugins/administrator/defines.php:177 +#: squirrelmail/plugins/administrator/defines.php:179 msgid "Data Directory" msgstr "Directorio de datos" -#: squirrelmail/plugins/administrator/defines.php:180 +#: squirrelmail/plugins/administrator/defines.php:182 msgid "Temp Directory" msgstr "Directorio temporal" -#: squirrelmail/plugins/administrator/defines.php:183 +#: squirrelmail/plugins/administrator/defines.php:185 msgid "Hash Level" msgstr "Nivel de fragmentación" -#: squirrelmail/plugins/administrator/defines.php:185 +#: squirrelmail/plugins/administrator/defines.php:187 msgid "Hash Disabled" msgstr "¿Desactivar fragmentación de directorio?" -#: squirrelmail/plugins/administrator/defines.php:187 +#: squirrelmail/plugins/administrator/defines.php:189 msgid "Moderate" msgstr "Moderada" -#: squirrelmail/plugins/administrator/defines.php:188 +#: squirrelmail/plugins/administrator/defines.php:190 msgid "Medium" msgstr "Media" -#: squirrelmail/plugins/administrator/defines.php:190 +#: squirrelmail/plugins/administrator/defines.php:192 msgid "Default Left Size" msgstr "Tamaño por omisión de lista de carpetas" -#: squirrelmail/plugins/administrator/defines.php:193 +#: squirrelmail/plugins/administrator/defines.php:195 msgid "Usernames in Lowercase" msgstr "¿Nombres de usuarios en minúsculas?" -#: squirrelmail/plugins/administrator/defines.php:195 +#: squirrelmail/plugins/administrator/defines.php:197 msgid "Allow use of priority" msgstr "¿Activar prioridades?" -#: squirrelmail/plugins/administrator/defines.php:197 +#: squirrelmail/plugins/administrator/defines.php:199 msgid "Hide SM attributions" msgstr "¿Esconder atributos de SM?" -#: squirrelmail/plugins/administrator/defines.php:200 #: squirrelmail/plugins/administrator/defines.php:202 +#: squirrelmail/plugins/administrator/defines.php:204 msgid "Message of the Day" msgstr "Mensaje del día" -#: squirrelmail/plugins/administrator/defines.php:206 +#: squirrelmail/plugins/administrator/defines.php:208 msgid "Database" msgstr "Base de datos" -#: squirrelmail/plugins/administrator/defines.php:208 +#: squirrelmail/plugins/administrator/defines.php:210 msgid "Address book DSN" msgstr "DSN de la libreta de direcciones" -#: squirrelmail/plugins/administrator/defines.php:211 +#: squirrelmail/plugins/administrator/defines.php:213 msgid "Address book table" msgstr "Tabla de la agenda" -#: squirrelmail/plugins/administrator/defines.php:215 +#: squirrelmail/plugins/administrator/defines.php:217 msgid "Preferences DSN" msgstr "DSN de preferencias" -#: squirrelmail/plugins/administrator/defines.php:218 +#: squirrelmail/plugins/administrator/defines.php:220 msgid "Preferences table" msgstr "Tabla de preferencias" -#: squirrelmail/plugins/administrator/defines.php:223 +#: squirrelmail/plugins/administrator/defines.php:225 msgid "Themes" msgstr "Temas" -#: squirrelmail/plugins/administrator/defines.php:225 +#: squirrelmail/plugins/administrator/defines.php:227 msgid "Style Sheet URL (css)" msgstr "URL de la hoja de estilos (css)" @@ -4172,36 +4163,11 @@ msgstr "" "Este módulo permite configurar remotamente las opciones principales de " "Squirrelmail." -#: squirrelmail/plugins/spamcop/setup.php:72 -#: squirrelmail/plugins/spamcop/setup.php:79 -msgid "Report as Spam" -msgstr "Reportar como SPAM" - -#: squirrelmail/plugins/spamcop/setup.php:90 -msgid "SpamCop - Spam Reporting" -msgstr "Reporte de SPAM - SpamCop" - -#: squirrelmail/plugins/spamcop/setup.php:92 -msgid "" -"Help fight the battle against unsolicited email. SpamCop reads the spam " -"email and determines the correct addresses to send complaints to. Quite " -"fast, really smart, and easy to use." -msgstr "" - -#~ msgid "Close window" -#~ msgstr "Cerrar Ventana" - -#~ msgid "SECURITY BREACH ON DECK 5! CMDR TUVOK AND SECURITY TEAM REQUESTED." -#~ msgstr "" -#~ "Se ha producido un intento de intrusión no autorizado. Administrador del " -#~ "sistema contactado." +#: squirrelmail/po/independent_strings.txt:18 +msgid "Delivery error report" +msgstr "Informe de error en entrega" -#~ msgid "Mailinglist options:" -#~ msgstr "Opciones de Lista:" +#: squirrelmail/po/independent_strings.txt:19 +msgid "Undelivered Message Headers" +msgstr "Cabecera de mensaje no entregado" -#~ msgid "" -#~ "FREE - ORBL is another ORBS spinoff formed after ORBS shut down. May be " -#~ "SLOOOOOOW!" -#~ msgstr "" -#~ "GRATUITO - ORBL es otra variante de ORBS creada después de su cierre. " -#~ "Puede ser muy lento." diff --git a/src/read_body.php b/src/read_body.php index a277a207..42670eae 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -219,16 +219,19 @@ function SendMDN ( $recipient , $sender) { function ToggleMDNflag ( $set ) { - global $imapConnection, $passed_id; + global $imapConnection, $passed_id, $mailbox; + + if ( $set ) { + $sg = '+'; - $myflag = '$MDNSent'; - if ($set) { - $read = sqimap_run_command ($imapConnection, "STORE $passed_id +FLAGS ($myflag)", true, - $response, $readmessage); } else { - $read = sqimap_run_command ($imapConnection, "STORE $passed_id -FLAGS ($myflag)", true, - $response, $readmessage); + $sg = '-'; } + + $cmd = 'STORE ' . $passed_id . ' ' . $cmd . 'FLAGS ($MDNSent)'; + sqimap_mailbox_select($imapConnection, $mailbox); + $read = sqimap_run_command ($imapConnection, $cmd, true, $response, $readmessage); + } function ClearAttachments() { @@ -269,17 +272,8 @@ if( $default_use_mdn && ( $mdn_user_support = getPref($data_dir, $username, 'mdn_user_support', $default_use_mdn) ) ) { $supportMDN = ServerMDNSupport($read); - $flags = sqimap_get_flags ($imapConnection, $passed_id); - $FirstTimeSee = TRUE; - $num=0; - while ($num < count($flags)) { - if ($flags[$num] == 'Seen') { - $FirstTimeSee = false; - } - $num++; - } - + $FirstTimeSee = !(in_array( 'Seen', $flags )); } displayPageHeader($color, $mailbox); @@ -786,8 +780,7 @@ if ($default_use_mdn) { if ($mdn_user_support) { // debug gives you the capability to remove mdn-flags - $debug = FALSE; - + $debug = false; $read = sqimap_run_command ($imapConnection, "FETCH $passed_id BODY.PEEK[HEADER.FIELDS (Disposition-Notification-To)]", true, $response, $readmessage); $MDN_to = substr($read[1], strpos($read[1], ' ')); @@ -795,15 +788,14 @@ if ($default_use_mdn) { $read = sqimap_run_command ($imapConnection, "FETCH $passed_id FLAGS", true, $response, $readmessage); - $str = strtolower($read[0]); - if (ereg('mdnsent', $str ) ) { - $MDN_flag_present = true; - } + + $MDN_flag_present = preg_match( '/.*\$MDNSent/i', $read[0]); + if (trim($MDN_to) && (!isset( $sendreceipt ) || $sendreceipt == '' ) ) { if ( $MDN_flag_present && $supportMDN) { - $sendreceipt="removeMDN"; + $sendreceipt = 'removeMDN'; $url = "\"read_body.php?mailbox=$mailbox&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more&sendreceipt=$sendreceipt\""; $sendreceipt=""; if ($debug ) { @@ -877,20 +869,22 @@ if ($default_use_mdn) { } } - if ( !isset( $sendreceipt ) ) { + if ( !isset( $sendreceipt ) || $sendreceipt == '' ) { } else if ( $sendreceipt == 'send' ) { if ( !$MDN_flag_present) { if (isset($identity) ) { - $final_recipient = getPref($data_dir, $username, 'email_address' . '0'); - } else $final_recipient = getPref($data_dir, $username, 'email_address'); + $final_recipient = getPref($data_dir, $username, 'email_address' . '0', '' ); + } else { + $final_recipient = getPref($data_dir, $username, 'email_address', '' ); + } $final_recipient = trim($final_recipient); if ($final_recipient == '' ) { - $final_recipient = getPref($data_dir, $username, 'email_address'); + $final_recipient = getPref($data_dir, $username, 'email_address', '' ); } - if ( SendMDN( $MDN_to, $final_recipient ) > 0 && $supportMDN == true ) { - ToggleMDNflag ( true); + if ( SendMDN( $MDN_to, $final_recipient ) > 0 && $supportMDN ) { + ToggleMDNflag( true); } } $sendreceipt = 'removeMDN'; -- 2.25.1