<?

// Sıra (sequence) numarasının kullanıldığı posta kutusu örneği

function MessageSendForm($newsgroups=""$subject=""$quote="") {
  global 
$PHP_SELF;
  
?>
  <FORM ACTION="<?PHP echo $PHP_SELF.'?act=sended'?>" METHOD="post" ENCTYPE="application/x-www-form-urlencoded">
    <H3>Mesaj Gönder</H3>
    Kimden:<BR>
    <INPUT TYPE="text" NAME="sender"     VALUE="" SIZE="50"><BR><BR>
    Haber Grupları:<BR>
    <INPUT TYPE="text" NAME="newsgroups" VALUE="<?PHP echo $newsgroups?>" SIZE="50"><BR><BR>
    Konu:<BR>
    <INPUT TYPE="text" NAME="subject"    VALUE="<?PHP echo $subject;   ?>"  SIZE="50"><BR><BR>
    Mesaj:<BR>
    <TEXTAREA COLS="50" ROWS="10" NAME="body"><?PHP echo $quote?></TEXTAREA><BR><BR>
    <INPUT TYPE="submit" NAME="Submit" VALUE="Gönder">
  </FORM>    
<?

}

//---------------------------------------------------------- begin:  
  
define(_NNTP_SERVER,"news.ulakbim.gov.tr");
  
define(_NNTP_PORT,"119");

  echo 
'NNTP Haber Öbeği:<BR>';

  
$msgsperpage=20;
  if(empty(
$page)) $page=1;
  
  
$mailbox="{"._NNTP_SERVER."/nntp:"._NNTP_PORT."}tr.ulaknet.listeci.ulak-news";
  
$stream=@imap_open($mailbox,'','') or die("Haber öbeğine erişirken hata oluştu");

  if(!isset(
$act)) $act="list";

  switch(
$act) {
    case 
"list"  :
      
$info=imap_mailboxmsginfo($stream);

      echo 
'<A HREF="'.$PHP_SELF.'?act=compose">Yeni Mesaj</A><BR><BR>';
      echo 
'<TABLE BORDER="1">';
      echo 
'<tr ALIGN="left">';
      echo 
'<th>Gönderen</th>';
      echo 
'<th>Haber Grupları</th>';
      echo 
'<th>Tarih</th>';
      echo 
'<th>Konu</th>';
      echo 
'<th>Referanslar</th>';
      echo 
'</tr>';

      for(
$i=(($page-1)*$msgsperpage)+1$i <= $info->Nmsgs && $i <= ($page*$msgsperpage); $i++) { 
        
$header=imap_header($stream ,$i);

        echo 
'<tr>';
        echo 
'<td NOWRAP>'.$header->fromaddress.'</td>';
        echo 
'<td NOWRAP>'.$header->newsgroups.'</td>';
        echo 
'<td NOWRAP>'.$header->Date.'</td>';
        echo 
'<td NOWRAP><a href="'.$PHP_SELF.'?act=view&seq='.$i.'">'.$header->Subject.'</a></td>';
        echo 
'<td NOWRAP>'.$header->references.'</td>';
        echo 
'</tr>';
      }
      echo 
'</TABLE>';

      if(
$page 1
        echo 
'<BR><a href="'.$PHP_SELF.'?act=list&page='.($page-1).'">Önceki Sayfa</a>&nbsp;&nbsp;';
        
      if(
$i $info->Nmsgs)
        echo 
'<a href="'.$PHP_SELF.'?act=list&page='.($page+1).'">Sonraki Sayfa</a><BR>';

      break;
  
    case 
"view":
      if(empty(
$seq)) {
        echo 
"<BR>Hata...";
        exit;
      }
      
      
$header=imap_header($stream ,$seq);

      echo 
'<A HREF="'.$PHP_SELF.'?act=compose">Yeni Mesaj</A>';
      echo 
' --- ';
      echo 
'<A HREF="'.$PHP_SELF.'?act=reply&seq='.$seq.'">Mesajı Yanıtla</A><BR><BR>';

      echo 
'<HR ALIGN="left" WIDTH="300">';

      echo 
'<B>Gönderen:</B> '.$header->fromaddress.'<BR>'
      echo 
'<B>Kime:</B> '.    $header->newsgroups .'<BR>'
      echo 
'<B>Tarih:</B> '.   $header->Date       .'<BR>'
      echo 
'<B>Konu:</B> '.    $header->Subject

      echo 
'<HR ALIGN="left" WIDTH="300">';
      echo 
'<B>Mesaj:</B>';

      echo 
imap_body($stream,$seq);
      break;
    
    case 
"compose":
      
MessageSendForm($newsgroups=""$subject=""$quote="");
      break;

    case 
"reply"  :
      if(empty(
$seq)) {
        echo 
"<BR>Hata...";
        exit;
      }

      
$header=imap_header($stream ,$seq);

      
$quote="\n\n".
             
"--------------------------\n".
             
"From $header->fromaddress:\n".
             
imap_body($stream,$seq);

      
$subject=$header->subject;      
      if(!
preg_match("/^RE:/",$header->subject)) $subject="RE: ".$subject;
      
      
MessageSendForm($newsgroups=$header->newsgroups$subject=$subject$quote=$quote);
      
      break;

    case 
"sended"  :
      !isset(
$sender)     ? $sender    ="" $sender    =urldecode($sender);
      !isset(
$newsgroups) ? $newsgroups="" $newsgroups=urldecode($newsgroups);
      !isset(
$subject)    ? $subject   ="" $subject   =urldecode($subject);
      !isset(
$body)       ? $body      ="" $body      =urldecode($body);

      
$socket=fsockopen(_NNTP_SERVER,_NNTP_PORT);
      if(
$socket) {
        
fputs($socket,"post\r\n");
        
fgets($socket,256);
        
fputs($socket,"Subject: $subject\r\n");
        
fputs($socket,"From: $sender\r\n");
        
fputs($socket,"Newsgroups: $newsgroups\r\n");
        
fputs($socket,"Content-Type: text/plain; charset=ISO-8859-9\r\n");
        
fputs($socket,"Content-Transfer-Encoding: 8bit\r\n");
        
fputs($socket,"User-Agent: Örnek Haber Öbek İstemcisi\r\n");
        
fputs($socket,"X-HTTP-Posting-Host: ".gethostbyaddr(getenv("REMOTE_ADDR"))."\r\n");
//      fputs($socket,"References: $ref\r\n");
        
fputs($socket,"\r\n".urldecode($body)."\r\n.\r\n");
        
fgets($socket,256);
        
fclose($socket);
      
        echo(
"Mesajınız gönderildi...");
      }
  }

?>