Source for file view_header.php

Documentation is available at view_header.php

  1. <?php
  2.  
  3. /**
  4.  * view_header.php
  5.  *
  6.  * This is the code to view the message header.
  7.  *
  8.  * @copyright 1999-2014 The SquirrelMail Project Team
  9.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  10.  * @version $Id: view_header.php 14436 2014-01-21 21:30:59Z pdontthink $
  11.  * @package squirrelmail
  12.  */
  13.  
  14. /** This is the view_header page */
  15. define('PAGE_NAME''view_header');
  16.  
  17. /**
  18.  * Path for SquirrelMail required files.
  19.  * @ignore
  20.  */
  21. define('SM_PATH','../');
  22.  
  23. /* SquirrelMail required files. */
  24. require_once(SM_PATH 'include/validate.php');
  25. require_once(SM_PATH 'functions/global.php');
  26. require_once(SM_PATH 'functions/imap.php');
  27. require_once(SM_PATH 'functions/html.php');
  28. require_once(SM_PATH 'functions/url_parser.php');
  29.  
  30. function parse_viewheader($imapConnection,$id$passed_ent_id{
  31.     global $uid_support;
  32.  
  33.     $header_full array();
  34.     $header_output array();
  35.     $second array();
  36.     $first array();
  37.  
  38.     if (!$passed_ent_id{
  39.         $read=sqimap_run_command ($imapConnection"FETCH $id BODY[HEADER]"
  40.                               true$a$b$uid_support);
  41.     else {
  42.         $query "FETCH $id BODY[".$passed_ent_id.'.HEADER]';
  43.         $read=sqimap_run_command ($imapConnection$query
  44.                               true$a$b$uid_support);
  45.     }    
  46.     $cnum 0;
  47.  
  48.     for ($i=1$i count($read)$i++{
  49.         $line sm_encode_html_special_chars($read[$i]);
  50.         switch (true{
  51.             case (preg_match('/^&gt;/i'$line)):
  52.                 $second[$i$line;
  53.                 $first[$i'&nbsp;';
  54.                 $cnum++;
  55.                 break;
  56. // FIXME: is the pipe character below a mistake?  I think the original author might have thought it carried special meaning in the character class, which it does not... but then again, I am not currently trying to understand what this code actually does
  57.             case (preg_match('/^[ |\t]/'$line)):
  58.                 $second[$i$line;
  59.                 $first[$i'';
  60.                 break;
  61.             case (preg_match('/^([^:]+):(.+)/'$line$regs)):
  62.                 $first[$i$regs[1':';
  63.                 $second[$i$regs[2];
  64.                 $cnum++;
  65.                 break;
  66.             default:
  67.                 $second[$itrim($line);
  68.                 $first[$i'';
  69.                 break;
  70.         }
  71.     }
  72.  
  73.     for ($i=0$i count($second)$i $j{
  74.         $f (isset($first[$i]$first[$i'');
  75.         $s (isset($second[$i]nl2br($second[$i]'')
  76.         $j $i 1;
  77.         while (($first[$j== ''&& ($j count($first))) {
  78.             $s .= '&nbsp;&nbsp;&nbsp;&nbsp;' nl2br($second[$j]);
  79.             $j++;
  80.         }
  81.         $lowf=strtolower($f);
  82.         /* do not mark these headers as emailaddresses */
  83.         if($lowf != 'message-id:' && $lowf != 'in-reply-to:' && $lowf != 'references:'{
  84.             parseEmail($s);
  85.         }
  86.         if ($f{
  87.             $header_output[array($f,$s);
  88.         }
  89.     }
  90.     return $header_output;
  91. }
  92.  
  93. function view_header($header$mailbox$color{
  94.     sqgetGlobalVar('QUERY_STRING'$queryStrSQ_SERVER);
  95.     $ret_addr SM_PATH 'src/read_body.php?'.$queryStr;
  96.  
  97.     displayPageHeader($color$mailbox);
  98.  
  99.     echo '<br />' .
  100.          '<table width="100%" cellpadding="2" cellspacing="0" border="0" '.
  101.             'align="center">' "\n" .
  102.          '<tr><td bgcolor="'.$color[9].'" width="100%" align="center"><b>'.
  103.          _("Viewing Full Header"'</b> - '.
  104.          '<a href="'
  105.     echo_template_var($ret_addr);
  106.     echo '">' ._("View message""</a></b></td></tr></table>\n";
  107.  
  108.     echo_template_var($header
  109.         array(
  110.             '<table width="99%" cellpadding="2" cellspacing="0" border="0" '.
  111.                 "align=center>\n".'<tr><td>',
  112.             '<nobr><tt><b>',
  113.             '</b>',
  114.             '</tt></nobr>',
  115.             '</td></tr></table>'."\n" 
  116.          )
  117.     );
  118.     echo '</body></html>';
  119. }
  120.  
  121. /* get global vars */
  122. if sqgetGlobalVar('passed_id'$tempSQ_GET) ) {
  123.   $passed_id = (int) $temp;
  124. }
  125. if sqgetGlobalVar('mailbox'$tempSQ_GET) ) {
  126.   $mailbox $temp;
  127. }
  128. if !sqgetGlobalVar('passed_ent_id'$passed_ent_idSQ_GET) ) {
  129.   $passed_ent_id '';
  130. sqgetGlobalVar('key',        $key,          SQ_COOKIE);
  131. sqgetGlobalVar('username',   $username,     SQ_SESSION);
  132. sqgetGlobalVar('onetimepad'$onetimepad,   SQ_SESSION);
  133. sqgetGlobalVar('delimiter',  $delimiter,    SQ_SESSION);
  134.  
  135. global $imap_stream_options// in case not defined in config
  136. $imapConnection sqimap_login($username$key$imapServerAddress,
  137.                                $imapPort0$imap_stream_options);
  138. $mbx_response sqimap_mailbox_select($imapConnection$mailboxfalsefalsetrue);
  139.  
  140. $header parse_viewheader($imapConnection,$passed_id$passed_ent_id)
  141. view_header($header$mailbox$color);
  142. sqimap_logout($imapConnection);

Documentation generated on Wed, 30 Jul 2014 04:22:00 +0200 by phpDocumentor 1.4.3