Rewrote SMTP functions, now includes error correction, fixed bugs in theme
authorlkehresman <lkehresman@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Thu, 6 Jan 2000 18:26:28 +0000 (18:26 +0000)
committerlkehresman <lkehresman@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Thu, 6 Jan 2000 18:26:28 +0000 (18:26 +0000)
selection on personal preferences.

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@109 7612ce4b-ef26-0410-bec9-ea0150e637f0

config/config.php
functions/prefs.php
functions/smtp.php
src/login.php
src/signout.php

index a254169675a552c36c0864878622ea79ec912faa..04ef87a8afef9627c974ae7f599808be81b76898 100644 (file)
@@ -50,7 +50,7 @@
     $theme[3]["NAME"] = "Slashdot";
 
 
-//  Whether or not to use $color[11] for special folders.  If not, special
+//  Whether or not to use a special color for special folders.  If not, special
 //  folders will be the same color as the other folders
     $use_special_folder_color = true;
 
index 5a2a89d45059eab6ceb4f92632484ca36994ba72..51265242727e4a4ea47d8116e99fc08fc8ab47d3 100644 (file)
@@ -8,6 +8,11 @@
    /** returns the value for $string **/
    function getPref($username, $string) {
       $filename = "../data/$username.pref";
+      if (!file_exists($filename)) {
+         echo "Preference file \"$filename\" not found.  Exiting abnormally";
+         exit;
+      }
+
       $file = fopen($filename, "r");
 
       /** read in all the preferences **/
index 6a2e2ff5d8f8fe28c65ed61d3fc065f0f1a8f948..20147405c1cea257dfa53e0ced2e6565e6c1698c 100644 (file)
@@ -18,7 +18,6 @@
 
    function sendMessage($smtpServerAddress, $smtpPort, $username, $domain, $t, $c, $b, $subject, $body, $version) {
       include("../config/config.php");
-      include("../functions/prefs.php");
 
       $to = parseAddrs($t);
       $cc = parseAddrs($c);
@@ -40,6 +39,7 @@
          exit;
       }
       $tmp = nl2br(htmlspecialchars(fgets($smtpConnection, 1024)));
+      errorCheck($tmp);
 
       $to_list = getLineOfAddrs($to);
       $cc_list = getLineOfAddrs($cc);
       /** Lets introduce ourselves */
       fputs($smtpConnection, "HELO $domain\n");
       $tmp = nl2br(htmlspecialchars(fgets($smtpConnection, 1024)));
+      errorCheck($tmp);
 
       /** Ok, who is sending the message? */
       fputs($smtpConnection, "MAIL FROM:$from_addr\n");
       $tmp = nl2br(htmlspecialchars(fgets($smtpConnection, 1024)));
+      errorCheck($tmp);
 
       /** send who the recipients are */
       for ($i = 0; $i < count($to); $i++) {
          fputs($smtpConnection, "RCPT TO:<$to[$i]>\n");
          $tmp = nl2br(htmlspecialchars(fgets($smtpConnection, 1024)));
+         errorCheck($tmp);
       }
       for ($i = 0; $i < count($cc); $i++) {
          fputs($smtpConnection, "RCPT TO:<$cc[$i]>\n");
          $tmp = nl2br(htmlspecialchars(fgets($smtpConnection, 1024)));
+         errorCheck($tmp);
       }
       for ($i = 0; $i < count($bcc); $i++) {
          fputs($smtpConnection, "RCPT TO:<$bcc[$i]>\n");
          $tmp = nl2br(htmlspecialchars(fgets($smtpConnection, 1024)));
+         errorCheck($tmp);
       }
 
       /** Lets start sending the actual message */
       fputs($smtpConnection, "DATA\n");
       $tmp = nl2br(htmlspecialchars(fgets($smtpConnection, 1024)));
+      errorCheck($tmp);
 
       fputs($smtpConnection, "Subject: $subject\n"); // Subject
       fputs($smtpConnection, "From: $from\n"); // Subject
 
       fputs($smtpConnection, ".\n"); // end the DATA part
       $tmp = nl2br(htmlspecialchars(fgets($smtpConnection, 1024)));
+      $num = errorCheck($tmp);
+      if ($num != 250) {
+         echo "<HTML><BODY BGCOLOR=FFFFFF>ERROR<BR>Message not sent!<BR>Reason given: $tmp<BR></BODY></HTML>";
+      }
 
       fputs($smtpConnection, "QUIT\n"); // log off
 
       fclose($smtpConnection);
    }
+
+
+   function errorCheck($line) {
+      // Status:  0 = fatal
+      //          5 = ok
+
+      $err_num = substr($line, 0, strpos($line, " "));
+      switch ($err_num) {
+         case 500:   $message = "Syntax error; command not recognized";
+                     $status = 0;
+                     break;
+         case 501:   $message = "Syntax error in parameters or arguments";
+                     $status = 0;
+                     break;
+         case 502:   $message = "Command not implemented";
+                     $status = 0;
+                     break;
+         case 503:   $message = "Bad sequence of commands";
+                     $status = 0;
+                     break;
+         case 504:   $message = "Command parameter not implemented";
+                     $status = 0;
+                     break;
+
+
+         case 211:   $message = "System status, or system help reply";
+                     $status = 5;
+                     break;
+         case 214:   $message = "Help message";
+                     $status = 5;
+                     break;
+
+
+         case 220:   $message = "Service ready";
+                     $status = 5;
+                     break;
+         case 221:   $message = "Service closing transmission channel";
+                     $status = 5;
+                     break;
+         case 421:   $message = "Service not available, closing chanel";
+                     $status = 0;
+                     break;
+
+
+         case 250:   $message = "Requested mail action okay, completed";
+                     $status = 5;
+                     break;
+         case 251:   $message = "User not local; will forward";
+                     $status = 5;
+                     break;
+         case 450:   $message = "Requested mail action not taken:  mailbox unavailable";
+                     $status = 0;
+                     break;
+         case 550:   $message = "Requested action not taken:  mailbox unavailable";
+                     $status = 0;
+                     break;
+         case 451:   $message = "Requested action aborted:  error in processing";
+                     $status = 0;
+                     break;
+         case 551:   $message = "User not local; please try forwarding";
+                     $status = 0;
+                     break;
+         case 452:   $message = "Requested action not taken:  insufficient system storage";
+                     $status = 0;
+                     break;
+         case 552:   $message = "Requested mail action aborted:  exceeding storage allocation";
+                     $status = 0;
+                     break;
+         case 553:   $message = "Requested action not taken: mailbox name not allowed";
+                     $status = 0;
+                     break;
+         case 354:   $message = "Start mail input; end with .";
+                     $status = 5;
+                     break;
+         case 554:   $message = "Transaction failed";
+                     $status = 0;
+                     break;
+         default:    $message = "Unknown response: $line";
+                     $status = 0;
+                     $error_num = "001";
+                     break;
+      }
+
+      if ($status == 0) {
+         echo "<HTML><BODY BGCOLOR=FFFFFF>";
+         echo "<TT>";
+         echo "<BR><B>ERROR</B><BR><BR>";
+         echo "&nbsp;&nbsp;&nbsp;<B>Error Number: </B>$err_num<BR>";
+         echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Reason: </B>$message<BR>";
+         echo "<B>Server Response: </B>$line<BR>";
+         echo "<BR>MAIL NOT SENT";
+         echo "</TT></BODY></HTML>";
+         exit;
+      }
+      return $err_num;
+   }
 ?>
\ No newline at end of file
index 7e0b4983ac955ed02b90524b48a59373dea706b1..55259bf4a4177b28bfba4261c16337666b26b283 100644 (file)
    include("../config/config.php");
    include("../functions/strings.php");
 
-   echo "<BODY TEXT=\"$color[8]\" BGCOLOR=\"$color[4]\" LINK=\"$color[7]\" VLINK=\"$color[7]\" ALINK=\"$color[7]\">\n";
+   echo "<BODY TEXT=000000 BGCOLOR=FFFFFF LINK=0000CC VLINK=0000CC ALINK=0000CC>\n";
    echo "<FORM ACTION=webmail.php METHOD=\"POST\" NAME=f>\n";
    echo "<CENTER><IMG SRC=\"$org_logo\"</CENTER>\n";
    echo "<CENTER><FONT FACE=\"Arial,Helvetica\" SIZE=-2>SquirrelMail version $version<BR>By the SquirrelMail Development Team<BR></FONT><CENTER>\n";
    echo "<TABLE COLS=1 WIDTH=350>\n";
    echo "   <TR>\n";
-   echo "      <TD BGCOLOR=\"$color[0]\">\n";
+   echo "      <TD BGCOLOR=DCDCDC>\n";
    echo "         <B><CENTER><FONT FACE=\"Arial,Helvetica\">$org_name Login</FONT></CENTER></B>\n";
    echo "      </TD>\n";
    echo "   </TR><TR>\n";
-   echo "      <TD BGCOLOR=\"$color[4]\">\n";
+   echo "      <TD BGCOLOR=FFFFFF>\n";
    echo "         <TABLE COLS=2 WIDTH=100%>\n";
    echo "            <TR>\n";
    echo "               <TD WIDTH=30% ALIGN=right>\n";
index 9439d60f79daf92f5351cc208d4dae7bec7db449..5c327e424ea5894b56374462e6574b79c5afd6c0 100644 (file)
 ?>
 <HTML>
 <?
-   include ("../config/config.php");
-   include("../src/load_prefs.php");
-
-   echo "<BODY TEXT=\"$color[8]\" BGCOLOR=\"$color[4]\" LINK=\"$color[7]\" VLINK=\"$color[7]\" ALINK=\"$color[7]\">\n";
-   echo "<BR><BR><TABLE BGCOLOR=\"$color[4]\" BORDER=0 COLS=1 WIDTH=50% CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER>";
-   echo "   <TR BGCOLOR=\"$color[3]\" WIDTH=100%>";
+   echo "<BODY TEXT=000000 BGCOLOR=FFFFFF LINK=0000CC VLINK=0000CC ALINK=0000CC>\n";
+   echo "<BR><BR><TABLE BGCOLOR=FFFFFF BORDER=0 COLS=1 WIDTH=50% CELLSPACING=0 CELLPADDING=2 ALIGN=CENTER>";
+   echo "   <TR BGCOLOR=DCDCDC WIDTH=100%>";
    echo "      <TD ALIGN=CENTER>";
    echo "         <FONT FACE=\"Arial,Helvetica\"><B>Sign Out</B></FONT>";
    echo "      </TD>";
    echo "   </TR>";
-   echo "   <TR BGCOLOR=\"$color[4]\" WIDTH=100%>";
+   echo "   <TR BGCOLOR=FFFFFF WIDTH=100%>";
    echo "      <TD ALIGN=CENTER>";
    echo "         <FONT FACE=\"Arial,Helvetica\"><BR>You have been successfully signed out.<BR></FONT>";
    echo "         <FONT FACE=\"Arial,Helvetica\">Click here to <A HREF=\"login.php\" TARGET=_top>log back in.</A></FONT><BR><BR>";
    echo "      </TD>";
    echo "   </TR>";
-   echo "   <TR BGCOLOR=\"$color[0]\" WIDTH=100%>";
+   echo "   <TR BGCOLOR=DCDCDC WIDTH=100%>";
    echo "      <TD ALIGN=CENTER>";
    echo "         <FONT FACE=\"Arial,Helvetica\"><BR></FONT>";
    echo "      </TD>";