common.inc
上传用户:wl2659
上传日期:2007-01-04
资源大小:8k
文件大小:4k
源码类别:

WEB邮件程序

开发平台:

PHP

  1. <?php
  2. // <--- Common Functions --->
  3. // Function sets unset or blank variables
  4. // to their configuration defaults
  5. function default_ifempty ($key,$value) {
  6.  require("defaults.inc");
  7.  if (empty ($value)) {
  8.     // determine the corresponding default name for KEY
  9.     $defname = "def".ucfirst(strtolower($key));
  10.     if (!empty ($$defname)) {
  11.        $value = $$defname;
  12.     }   // endif
  13.  }   // endif
  14.  return $value;
  15. }   // endfunc
  16. // Function does a simple check for a valid email address format
  17. function bad_address ($email) {
  18.  if (!eregi("^[^@[:space:]]+@([[:alnum:]-]+.)+[[:alnum:]][[:alnum:]][[:alnum:]]?$", $email)) {
  19.     return 1;
  20.  } else {
  21.     return 0;
  22.  }   // endif
  23. } // endfunc
  24. // Function checks for existence of required fields
  25. function check_required ($strRequired,&$aryMissing) {
  26.  // Set up for return counter
  27.  $j = 0;
  28.  // Check for empty required
  29.  if (!empty ($strRequired)) {
  30.     // Create array for required fields
  31.     $aryRequired = explode(",", $strRequired);
  32.     // Traverse array for required fields
  33.     for ($i=0 ; $i < count($aryRequired) ; $i++) {
  34.        // Test if a required field is missing
  35.        $curr_field = $aryRequired[$i];
  36.        $glob_field = $GLOBALS[$curr_field];
  37.        if (empty($glob_field)) {
  38.           $aryMissing[$j] = $aryRequired[$i];
  39.           $j++;
  40.        }   // endif
  41.     }   // endfor
  42.  }   // endif
  43.  echo "<UL>n";
  44.  return $j;
  45. }   // endfunc
  46. // Function replaces variables into templates
  47. function build_body ($body) {
  48.  global $HTTP_POST_VARS;
  49.  reset($HTTP_POST_VARS);
  50.  if (!empty($body)) {
  51.     // Fill in variables into the template
  52.     while (list($header, $value) = each($HTTP_POST_VARS)) {
  53.        $body = ereg_replace("%".$header."%", $value, $body);
  54.     } // endwhile
  55.  } else {
  56.     // Simply add variables line by line
  57.     sort($HTTP_POST_VARS);
  58.     while (list($header, $value) = each($HTTP_POST_VARS)) {
  59.        $body = "$bodyn$header: $value";
  60.     }   // endwhile
  61.  }   // endif
  62.  return $body;
  63. }   // endfunc
  64. // Function sends mail to user
  65. function send_mail ($to, $from, $subject, $body, $extras) {
  66.  // Build extra headers
  67.  $headers = "FROM:".$from."n";
  68.  if (! empty ($extras)) {
  69.     $headers = $headers.$extras;
  70.  }   // endfrom
  71.  
  72.  // Send mail
  73.  mail ( $to, $subject, $body, $headers);
  74.  
  75. }   // endfunc
  76. // Function formats mail headers and sends mail(s).
  77. function mail_it () {
  78.  global $to, $subject, $from, $autofrom, $autosubject,
  79.         $sendextras, $autoextras, $template, $autoreply,
  80.         $autoprefix ;
  81.  // Send the message.
  82.  if (!empty ($to)) {
  83.     $mainbody = build_body ($template);
  84.     send_mail ($to, $from, $subject, $mainbody, $sendextras);
  85.  }
  86.  // Send the autoreply.
  87.  if ( (!empty($autoreply)) and (!bad_address($from)) ) {
  88.     $mainbody = build_body ($autoreply);
  89.     $mainto = $from;
  90.     if (!empty($autosubject)) {
  91.        $mainsubject = $autosubject;
  92.     } elseif (!empty ($autoprefix)) {
  93.        $mainsubject = $autoprefix.$subject;
  94.     } else {
  95.        $mainsubject = "Auto-Reply: ".$subject;
  96.     }   // endif
  97.     if (!empty ($autofrom)) {
  98.        $mainfrom = $autofrom;
  99.     } else {
  100.        $mainfrom = $to;
  101.     }
  102.     send_mail ($mainto, $mainfrom, $mainsubject, $mainbody, $autoextras);
  103.  }   // endif (auto reply)
  104. }   // endfunc
  105. // Function logs the email to a table
  106. function log_it ($to, $from, $subject, $body) {
  107.  // Set up access to needed global values
  108.  global $hostname, $user, $password, $db, $table, $logbodies;
  109.  // Open a connection to the DBMS
  110.  $lnk = mysql_connect("$hostname", "$user", "$password");
  111.  
  112.  // Log mail to database
  113.  if ($lnk) {
  114.     $host = getenv($REMOTE_HOST); 
  115.     $host ? "": $host = gethostbyaddr(getenv($REMOTE_ADDR));
  116.     if ($logbodies) {
  117.        $result = mysql_db_query ("$db", "INSERT INTO $table VALUES(null, '$host', '$to', '$subject', '$from', '$body')", $lnk);
  118.     } else {
  119.        $result = mysql_db_query ("$db", "INSERT INTO $table VALUES(null, '$host', '$to', '$subject', '$from')", $lnk);
  120.     }   // endif
  121.  } else {
  122.     $result = 0;
  123.  }   // endif
  124. }   // endfunc
  125. ?>