Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Andrew                               2:5020/400     31 Mar 2001  11:23:33
 To : All
 Subject : Re: Help
 -------------------------------------------------------------------------------- 
 
 Sergey Babunin wrote:
 
 > 
 > Привет народ!
 > Я уже месяца 3 мучаюсь с Перлом и не фига не получается. ПАМОГИТЕ!!!
 > Такая проблема у меня надо чтобы было 2 скрипта первый главный например
 
 [здесь был skip]
 
 > а во втором ну там например заполнение формы и отправка.
 > Только чтобы он с этим же "SUB FORM"  работал. Если можно то поподробнее и
 > кодом обясните пожалуйста.
 > А то я ваще не везжаю как енто делается.
 
 Hу ты, блин, мужик мазохист!!!
 
 Hиже идут куски моего ИМАП клиента. Это еще даже не пре-альфа, так что
 код сырой и сильно его разглядывать не надо ,)
 
 В List есть пример формы, а в Move & View пример обработки параметров.
 ################################################################################
 ################################################################################
 ################################################################################
 #!/.../perl -w
 
 use CGI;
 
 my $query  = CGI -> new();
 
 ################################################################################
 #
 ## Configs
 #
 ################################################################################
 
 $TEXTCOLOR       = 'BLACK';
 $LINKCOLOR       = 'BLACK';
 $FOLDERTEXTCOLOR = 'WHITE';
 $FOLDERBGCOLOR   = '#2C5D92';
 $FOLDERBGCOLOR   = '#0054b4';
 #$FOLDERBGCOLOR   = '#3366cc';
 #$FOLDERBGCOLOR   = '#009933';
 
 $BGCOLOR         = '#c0c0c0';
 
 $REDIRECTTIMEOUT = 5; #секунд
 
 ################################################################################
 #
 ## Programm
 #
 ################################################################################
 
 $Pages{List}   = \&List;
 $Pages{View}   = \&View;
 $Pages{Move}   = \&Move;
 
 if ($query -> param('Page') eq 'Move') {
   Move();
   exit;
 }
 
 print $query -> header();
 print $query -> start_html(-BGCOLOR => $BGCOLOR, -TEXT => $TEXTCOLOR,
 -LINK => $LINKCOLOR, -VLINK => $LINKCOLOR);
 
 $Pages{$page} -> () || die;
 
 sub Move {
   print $query -> header(-Refresh => "$REDIRECTTIMEOUT;
 URL=mail.cgi?Page=List");
   print $query -> start_html( -BGCOLOR => $BGCOLOR, -TEXT => $TEXTCOLOR,
 -LINK => $LINKCOLOR, -VLINK => $LINKCOLOR);
   $DstFolder = $query -> param ('DstFolder');
   CheckAuth();
   foreach $e ($query -> param ('ChkID')){
     ($fold,$mesg) = (split(/:/, $e));
     push @{$FLDS{$fold}}, $mesg;
     $mesg_num ++;
   }
   foreach $fold (keys %FLDS){
     $imap -> select($fold) || Error("Move | select $fold box");
     $imap -> move($DstFolder,@{$FLDS{$fold}}) || Error('Move | move');
     $imap -> expunge($fold) || Error("Move | expunge $fold box");
   }
   print "Были перемещены $mesg_num сообщений<BR>";
   print "<TABLE BORDER=0 WIDTH=100%><TR><TD BGCOLOR=\"$FOLDERBGCOLOR\"
 ALIGN=CENTER><FONT COLOR=$FOLDERTEXTCOLOR FACE=Arial><B>Подождите
 $REDIRECTTIMEOUT секунд, или <A HREF=\"mail.cgi?Page=List\">нажмите
 сюда</A>.</B></FONT></TD></TR></TABLE>";
 }
 
 sub List {
   CheckAuth();
   my @folders = $imap -> subscribed();
   unshift @folders, "INBOX"; 
   
   print "
     <FORM METHOD=GET ACTION=mail.cgi>
     <TABLE BORDER=0 WIDTH=100%>
   ";
   
   foreach $f (@folders){
     print "<TR><TD COLSPAN=6 BGCOLOR=\"$FOLDERBGCOLOR\"><FONT
 COLOR=$FOLDERTEXTCOLOR FACE=Arial><B>$f</B></FONT></TD></TR>\n";
     $imap -> select($f) || Error('select');
     $a_ref = $imap -> search("ALL") || Error('search');
     if (0 == (scalar @{$a_ref}) ){
       print "<TR><TD COLSPAN=6><FONT
 FACE=Arial><B>        В этой
 папке нет сообщений</B></FONT></TD></TR>\n";
     }
     foreach $mesg (@{$a_ref}){
       $url = "mail.cgi?Page=View&Fold=$f&Mesg=$mesg"; uri_escape($url);
       @flags = $imap -> flags($mesg);
       $size  = $imap -> size($mesg);
       if   ($size > 1_024_000) { $size  = sprintf("%.1fM", $size /
 1024**2);} 
       elsif($size > 1_024    ) { $size  = sprintf("%.1fK", $size /
 1024);}
       $size  = $size . ' ';
       $tmp   = join " ", @flags; if ($tmp =~ /\\Seen/) {$new = '';}
 else{$new = ' <B>N</B> ';}
       $h_ref = $imap -> parse_headers($mesg,"Subject","Date","From");
       $subj  = join ('', @{$h_ref -> {'Subject'}}) || 'Without any
 subject!'; 
       $fromenc = undef;
       if ($subj =~ /=\?.*/) {
         if ($subj =~ /=\?koi8-r\?/i) {
           $subj =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
           $subj = unmime($subj);
         } elsif ($subj =~ /=\?.*?1251\?/i) {
           $subj =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
           $subj = unmime($subj);
           $fromenc = 'win';
         } elsif ($subj =~ /=\?iso-8859-5\?/i) {
           $subj =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
           $subj = unmime($subj);
           $fromenc = 'iso';
         } elsif ($subj =~ /=\?cp866\?/i) {
           $subj =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
           $subj = unmime($subj);
           $fromenc = 'dos';
         }
       }
       $subj  = convert($fromenc,'koi',$subj) if (defined $fromenc);
       $subj  =~ /(.{0,80})/; $subj = $1; 
       $subj  = '<A HREF="'.$url.'">'.$subj.'</A>'; if ($new) {$subj  =
 "<B>$subj</B>";}
       $date  = join ('', @{$h_ref -> {'Date'}});    if ($new) {$date  =
 "<B>$date</B>";}
       $from  = join ('', @{$h_ref -> {'From'}}); $from  =~
 s/^(.+)<.*>/$1/g; 
       $fromenc = undef;
       if ($from =~ /=\?.*/) {
         if ($from =~ /=\?koi8-r\?/i) {
           $from =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
           $from = unmime($from);
         } elsif ($from =~ /=\?.*?1251\?/i) {
           $from =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
           $from = unmime($from);
           $fromenc = 'win';
         } elsif ($from =~ /=\?iso-8859-5\?/i) {
           $from =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
           $from = unmime($from);
           $fromenc = 'iso';
         } elsif ($from =~ /=\?cp866\?/i) {
           $from =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
           $from = unmime($from);
           $fromenc = 'dos';
         }
       }
       $from  = convert($fromenc,'koi',$from) if (defined $fromenc);
       $from  = '<A HREF="'.$url.'">'.$from.'</A>'; if ($new) {$subj  =
 "<B>$subj</B>";}
       $new   = '   ' unless ($new);
       print "
         <TR>
           <TD><FONT COLOR=$TEXTCOLOR FACE=Arial SIZE=-1>".$new
 ."</FONT></TD>
           <TD><INPUT TYPE=CHECKBOX NAME=ChkID VALUE=\"$f:$mesg\"></TD>
           <TD><FONT COLOR=$TEXTCOLOR FACE=Arial
 SIZE=-1>".$subj."</FONT></TD>
           <TD><FONT COLOR=$TEXTCOLOR FACE=Arial
 SIZE=-1>".$date."</FONT></TD>
           <TD ALIGN=RIGHT><FONT COLOR=$TEXTCOLOR FACE=Arial
 SIZE=-1>".$size."</FONT></TD>
           <TD><FONT COLOR=$TEXTCOLOR FACE=Arial
 SIZE=-1>".$from."</FONT></TD>
         </TR>
       ";
     }
   }
   
   $selectmv = '<SELECT NAME=DstFolder>';
   foreach $f (@folders){
     $selectmv .= "<OPTION VALUE=$f>$f</OPTION>";
   }
   $selectmv.= '</SELECT>';
   
   $selectus =  $selectmv;
   $selectus =~ s/NAME=DstFolder/NAME=UnsubscribeFolder/g;
   $selectus =~ s/<OPTION VALUE=INBOX>INBOX<\/OPTION>//g;
   
   $selectdr =  $selectus;
   $selectdr =~ s/NAME=UnsubscribeFolder/NAME=DropFolder/g;
   print "
     </TABLE>
     <TABLE BORDER=1>
       <TR><TD BGCOLOR=\"$FOLDERBGCOLOR\"><FONT COLOR=$FOLDERTEXTCOLOR
 FACE=Arial><B>Работа с письмами: </B></FONT></TD><TD><INPUT
 TYPE=SUBMIT Name=Page VALUE=Delete></TD><TD><INPUT TYPE=SUBMIT Name=Page
 VALUE=Move> to: $selectmv</TD></TR>
       <TR>
         <TD BGCOLOR=\"$FOLDERBGCOLOR\">
           <FONT COLOR=$FOLDERTEXTCOLOR FACE=Arial><B>Работа с папками:
  </B></FONT>
         </TD>
         <TD>
           <INPUT TYPE=SUBMIT Name=Page VALUE=Create>
         </TD>
         <TD>
           <INPUT TYPE=SUBMIT Name=Page VALUE=Subscribe>
         </TD>
         <TD>
           <INPUT TYPE=SUBMIT Name=Page VALUE=Unsubscribe> from:
 $selectus
         </TD>
         <TD>
           <INPUT TYPE=SUBMIT Name=Page VALUE=Drop> $selectdr
         </TD>
         
       </TR>
     </TABLE>
     </FORM>
   ";
     
 }
 
 sub View {
   CheckAuth();
   my $mesg = $query -> param('Mesg');
   my $fold = $query -> param('Fold');
   
   $imap ->  select($fold) || Error('select');
   $h_ref =  $imap ->
 parse_headers($mesg,"Subject","Date","From","Reply-To","Return-Path","To","Newsg
 roups","Cc","Bcc")
 || Error('Parse Header into View');
 
   $header = "<TABLE BORDER=0>\n";
 
   $subj  =  join "\n", @{$h_ref -> {'Subject'}}; 
   $fromenc = undef;
   if ($subj =~ /=\?.*/) {
     if ($subj =~ /=\?koi8-r\?/i) {
       $subj =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $subj = unmime($subj);
     } elsif ($subj =~ /=\?.*?1251\?/i) {
       $subj =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $subj = unmime($subj);
       $fromenc = 'win';
     } elsif ($subj =~ /=\?iso-8859-5\?/i) {
       $subj =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
       $subj = unmime($subj);
       $fromenc = 'iso';
     } elsif ($subj =~ /=\?cp866\?/i) {
       $subj =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $subj = unmime($subj);
       $fromenc = 'dos';
     }
   }
   $subj  = convert($fromenc,'koi',$subj) if (defined $fromenc);
   if ($subj) {
     $subj   =~ s/>/>/g; $subj =~ s/</</g;
     $subj   =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR
 FACE=Arial><B>Subject: </B></FONT></TD><TD><FONT COLOR=$TEXTCOLOR
 FACE=Courier SIZE=+0>$subj</FONT></TD></TR>";
   }
   
   $date  =  join "\n", @{$h_ref -> {'Date'}}; 
   if ($date) {
     $date   =~ s/>/>/g; $date =~ s/</</g;
     $date   =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR
 FACE=Arial><B>Date: </B></FONT></TD><TD><FONT COLOR=$TEXTCOLOR
 FACE=Courier SIZE=+0>$date</FONT></TD></TR>";
   }
   
   $from  =  join "\n", @{$h_ref -> {'From'}}; 
   $fromenc = undef;
   if ($from =~ /=\?.*/) {
     if ($from =~ /=\?koi8-r\?/i) {
       $from =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $from = unmime($from);
     } elsif ($from =~ /=\?.*?1251\?/i) {
       $from =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $from = unmime($from);
       $fromenc = 'win';
     } elsif ($from =~ /=\?iso-8859-5\?/i) {
       $from =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
       $from = unmime($from);
       $fromenc = 'iso';
     } elsif ($from =~ /=\?cp866\?/i) {
       $from =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $from = unmime($from);
       $fromenc = 'dos';
     }
   }
   $from  = convert($fromenc,'koi',$from) if (defined $fromenc);
   if ($from) {
     $from   =~ s/>/>/g; $from =~ s/</</g;
     $from   =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR
 FACE=Arial><B>From: </B></FONT></TD><TD><FONT COLOR=$TEXTCOLOR
 FACE=Courier SIZE=+0>$from</FONT></TD></TR>";
   }  
   
   $repl  =  join "\n", @{$h_ref -> {'Reply-To'}}; 
   $fromenc = undef;
   if ($repl =~ /=\?.*/) {
     if ($repl =~ /=\?koi8-r\?/i) {
       $repl =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $repl = unmime($repl);
     } elsif ($repl =~ /=\?.*?1251\?/i) {
       $repl =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $repl = unmime($repl);
       $fromenc = 'win';
     } elsif ($repl =~ /=\?iso-8859-5\?/i) {
       $repl =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
       $repl = unmime($repl);
       $fromenc = 'iso';
     } elsif ($repl =~ /=\?cp866\?/i) {
       $repl =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $repl = unmime($repl);
       $fromenc = 'dos';
     }
   }
   $repl  = convert($fromenc,'koi',$repl) if (defined $fromenc);
   if ($repl) {
     $repl   =~ s/>/>/g; $repl =~ s/</</g;
     $repl   =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR
 FACE=Arial><B>Reply-To: </B></FONT></TD><TD><FONT COLOR=$TEXTCOLOR
 FACE=Courier SIZE=+0>$repl</FONT></TD></TR>";
   }  
   
   $retn  =  join "\n", @{$h_ref -> {'Return-Path'}}; 
   $fromenc = undef;
   if ($retn =~ /=\?.*/) {
     if ($retn =~ /=\?koi8-r\?/i) {
       $retn =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $retn = unmime($retn);
     } elsif ($from =~ /=\?.*?1251\?/i) {
       $retn =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $retn = unmime($retn);
       $fromenc = 'win';
     } elsif ($retn =~ /=\?iso-8859-5\?/i) {
       $retn =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
       $retn = unmime($retn);
       $fromenc = 'iso';
     } elsif ($retn =~ /=\?cp866\?/i) {
       $retn =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $retn = unmime($retn);
       $fromenc = 'dos';
     }
   }
   $retn  = convert($fromenc,'koi',$retn) if (defined $fromenc);
   if ($retn) {
     $retn   =~ s/>/>/g; $retn =~ s/</</g;
     $retn   =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR
 FACE=Arial><B>Return-Path: </B></FONT></TD><TD><FONT
 COLOR=$TEXTCOLOR FACE=Courier SIZE=+0>$retn</FONT></TD></TR>";
   }  
   
   $news  =  join "\n", @{$h_ref -> {'Newsgroups'}}; 
   $fromenc = undef;
   if ($news =~ /=\?.*/) {
     if ($news =~ /=\?koi8-r\?/i) {
       $news =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $news = unmime($news);
     } elsif ($news =~ /=\?.*?1251\?/i) {
       $news =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $news = unmime($news);
       $fromenc = 'win';
     } elsif ($news =~ /=\?iso-8859-5\?/i) {
       $news =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
       $news = unmime($news);
       $fromenc = 'iso';
     } elsif ($news =~ /=\?cp866\?/i) {
       $news =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $news = unmime($news);
       $fromenc = 'dos';
     }
   }
   $news  = convert($fromenc,'koi',$news) if (defined $fromenc);
   if ($news){
     $news   =~ s/>/>/g; $news =~ s/</</g;
     $news   =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR
 FACE=Arial><B>Newsgroups: </B></FONT></TD><TD><FONT
 COLOR=$TEXTCOLOR FACE=Courier SIZE=+0>$news</FONT></TD></TR>";
   }
   
   $to    =  join "\n", @{$h_ref -> {'To'}}; 
   $fromenc = undef;
   if ($to   =~ /=\?.*/) {
     if ($to   =~ /=\?koi8-r\?/i) {
       $to   =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $to   = unmime($to  );
     } elsif ($to   =~ /=\?.*?1251\?/i) {
       $to   =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $to   = unmime($to  );
       $fromenc = 'win';
     } elsif ($to   =~ /=\?iso-8859-5\?/i) {
       $to   =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
       $to   = unmime($to  );
       $fromenc = 'iso';
     } elsif ($to   =~ /=\?cp866\?/i) {
       $to   =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $to   = unmime($to  );
       $fromenc = 'dos';
     }
   }
   $to    = convert($fromenc,'koi',$to  ) if (defined $fromenc);
   if ($to){
     $to     =~ s/>/>/g; $to =~ s/</</g;
     $to     =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR FACE=Arial><B>To: </B></FONT></TD><TD><FONT
 COLOR=$TEXTCOLOR FACE=Courier SIZE=+0>$to</FONT></TD></TR>";
   }
   
   $cc    =  join "\n", @{$h_ref -> {'Cc'}}; 
   $fromenc = undef;
   if ($cc   =~ /=\?.*/) {
     if ($cc   =~ /=\?koi8-r\?/i) {
       $cc   =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $cc   = unmime($cc  );
     } elsif ($cc   =~ /=\?.*?1251\?/i) {
       $cc   =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $cc   = unmime($cc  );
       $fromenc = 'win';
     } elsif ($cc   =~ /=\?iso-8859-5\?/i) {
       $cc   =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
       $cc   = unmime($cc  );
       $fromenc = 'iso';
     } elsif ($cc   =~ /=\?cp866\?/i) {
       $cc   =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $cc   = unmime($cc  );
       $fromenc = 'dos';
     }
   }
   $cc    = convert($fromenc,'koi',$cc  ) if (defined $fromenc);
   if ($cc){
     $cc     =~ s/>/>/g; $cc =~ s/</</g;
     $cc     =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR FACE=Arial><B>Cc: </B></FONT></TD><TD><FONT
 COLOR=$TEXTCOLOR FACE=Courier SIZE=+0>$cc</FONT></TD></TR>";
   }
   
   $bcc    =  join "\n", @{$h_ref -> {'Bcc'}}; 
   $fromenc = undef;
   if ($bcc  =~ /=\?.*/) {
     if ($bcc  =~ /=\?koi8-r\?/i) {
       $bcc  =~ s/=\?koi8-r\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $bcc  = unmime($bcc );
     } elsif ($bcc  =~ /=\?.*?1251\?/i) {
       $bcc  =~ s/=\?.*?1251\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $bcc  = unmime($bcc );
       $fromenc = 'win';
     } elsif ($bcc  =~ /=\?iso-8859-5\?/i) {
       $bcc  =~ s/=\?iso-8859-5\?/=\?iso-8859-1\?/gi; #Это, что б
 обмануть unmime!!!
       $bcc  = unmime($bcc );
       $fromenc = 'iso';
     } elsif ($bcc  =~ /=\?cp866\?/i) {
       $bcc  =~ s/=\?cp866\?/=\?iso-8859-1\?/gi; #Это, что б обмануть
 unmime!!!
       $bcc  = unmime($bcc );
       $fromenc = 'dos';
     }
   }
   $bcc   = convert($fromenc,'koi',$bcc ) if (defined $fromenc);
   if ($bcc){
     $bcc    =~ s/>/>/g; $bcc =~ s/</</g;
     $bcc    =~ s/ / /g;
     $header .= "<TR><TD BGCOLOR=$FOLDERBGCOLOR><FONT
 COLOR=$FOLDERTEXTCOLOR FACE=Arial><B>Bcc: </B></FONT></TD><TD><FONT
 COLOR=$TEXTCOLOR FACE=Courier SIZE=+0>$bcc</FONT></TD></TR>";
   }
   
   $header =~ s/<\/TR>/<\/TR>\n/g;
   $header =~ s/\t/        /g;
   $header .= "</TABLE><HR>\n\n";
   print "$header"; 
      
   $text   = $imap -> message_string($mesg);
   $parser = MIME::Parser -> new ();
   unless (-d 'MIME-tmp/'.$Login) {
     if (-e 'MIME-tmp/'.$Login){
       Error('Hевозможно создать директорию для временных файлов');
     } else {
       mkdir ('MIME-tmp/'.$Login, 0300) || Error('Hевозможно создать
 директорию для временных файлов');
     }
   }
   $parser -> output_dir('MIME-tmp/'.$Login);
   $parser -> output_to_core('NONE');
   $parser -> parse_nested_messages('REPLACE'); 
   $entity = $parser -> parse_data($text) || Error('View MIME');
   $text   = MIME_Decode($entity,'main');
   $text   =~ s/<BR>\n/\n/g;
   $text   =~ s/\n/<BR>\n/g;
   
   print "<FONT COLOR=$TEXTCOLOR FACE=Courier SIZE=+1>", $text,
 "</FONT>";
 }
 --- ifmail v.2.15dev5
  * Origin: BIC (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Help   Sergey Babunin   31 Mar 2001 01:21:46 
 Re: Help   Andrew   31 Mar 2001 11:23:33 
Архивное /ru.cgi.perl/120283335b0df.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional