sentmail.pl
上传用户:dostar
上传日期:2007-01-04
资源大小:21k
文件大小:3k
源码类别:

WEB邮件程序

开发平台:

Perl

  1. #!/usr/local/bin/perl
  2. BEGIN { $APP_PATH=$0; $APP_PATH=~s/(/*)[^/]+$/$1/g; }
  3. # @ ----------------------------------------------------------------------------------------------------------
  4. # @ This code is (c) 1999 Alexandre Aufrere and NikoSoft.
  5. # @ Published under NPL rights, meaning you have the right
  6. # @ to use and modify this code freely, provided it 
  7. # @ remains available and free. Any modified code should be
  8. # @ submitted to Nikopol Software Corp. or Alexandre Aufrere.
  9. # @ This code is protected by the French laws on Copyright.
  10. # @ Please note that there it comes with NO WARRANTY of any kind,
  11. # @ and especially for any damagbe it could cause to your computer
  12. # @ or network.
  13. # @ Using this code means you agree to this license agreement.
  14. # @ Further information at http://aufrere.citeweb.net/nsc/
  15. # @ ----------------------------------------------------------------------------------------------------------
  16. # @ 
  17. # @ Project NS WebMail
  18. # @ 
  19. # @ Filename sentmail.pl
  20. # @ 
  21. # @ Description outbox manager for NS WebMail
  22. # @ 
  23. # @ Version 1.0
  24. # @ 
  25. # @ ----------------------------------------------------------------------------------------------------------
  26. require $APP_PATH."config.pl";
  27. &ReadParse;
  28. $loginname = $in{'loginname'};
  29. $password  = $in{'password'};
  30. $POPserver = $in{'POPserver'};
  31. $lastMsg   = $in{'lastMsg'};
  32. $deleteMsg = $in{'deleteMsg'};
  33. $cache     = $in{'cache'};
  34. #Begin production of HTML code.
  35. print "Content-type: text/htmlnn";
  36. print "<HTML><HEAD><TITLE>NSWM Sent Mail Managment</TITLE>";
  37. if ($cache eq "No") { print "<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>"; 
  38.   print "</HEAD>n<BODY BGCOLOR='#FFFFFF'>";
  39. }
  40. else                { print "</HEAD>n<BODY BGCOLOR='FF8F8F'>";
  41. }
  42. $logfilename=$LOG_PATH.$loginname."@".$POPserver.".log";
  43. open (f, "$logfilename");
  44. @msgsentlist=<f>;
  45. close (f);
  46. @msgsentlist=reverse(@msgsentlist);
  47. $i=0;
  48. print "n<table border=0 cellpadding=2 cellspacing=0 width=90% align=center>n";
  49. print "<tr bgcolor=darkblue><td><b><font color=white>$totext</b></td><td><b><font color=white>$subjecttext</b></td><td><b><font color=white>$datetext</b></td></tr>n";
  50. foreach $msg (@msgsentlist) {
  51. ($msgdate,$msgto, $msgsubject)=split(";",$msg);
  52. if ( (($i)/2) == int(($i)/2) ) {
  53. print "<tr>n";
  54. } else {
  55. print "<tr bgcolor=lightblue>n";
  56. }
  57. $msgto=~ s/</&lt;/g;
  58.     $msgto=~ s/,/<br>n/g;
  59. print "<td>$msgto</td><td>$msgsubject</td><td><font size=-1>$msgdate</font></td></tr>n";
  60. $i++;
  61. }
  62. print "</table>";
  63. print"</BODY></HTML>";
  64. exit;
  65. ###############################################################################
  66. sub ReadParse {
  67.   local(*in)=@_ if @_;
  68.   local ($i,$key,$val);
  69.   if ($ENV{'REQUEST_METHOD'} eq "GET") {
  70.     $in=$ENV{'QUERY_STRING'};
  71.   }
  72.   elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
  73.     read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
  74.   }
  75.   
  76.   @in=split(/&/,$in);
  77.   
  78.   foreach $i (0 .. $#in) {
  79.     $in[$i] =~ s/+/ /g;
  80.     ($key,$val)=split(/=/,$in[$i],2);
  81.     $key =~ s/%(..)/pack("c",hex($1))/ge;
  82.     $val =~ s/%(..)/pack("c",hex($1))/ge;
  83.     $in{$key} .= "" if (defined($in{$key}));
  84.     $in{$key} .=$val;
  85.   }
  86.   return length($in);
  87. }