Ich nutze das Mailkontakt-Modul von forseth
Code: Alles auswählen
/
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname      :  Mailkontakt
* Author         :  agon
* Copyright      :  Contenido - four for business
* Created        :  05-11-2003
* Modified       :  05-11-2003
* Modified again :  Feb. 29th 2004 by Lars D. Forseth <lars@forseth.de>
************************************************/
$db = new DB_contenido;
$db->query("LOCK TABLES mailkontakt WRITE"); // LOCK TABLES
/* FILTER GIVEN DATA */
if (!(eregi("([0-9]{1,11})",$mailkontaktid))) $mailkontaktid = 0;
$mailkontakt_name = str_replace (";","",$mailkontakt_name);
$mailkontakt_name = str_replace ("--","",$mailkontakt_name);
$mailkontakt_name = str_replace ("'","",$mailkontakt_name);
$mailkontakt_name = str_replace ("\"","",$mailkontakt_name);
$mailkontakt_name = htmlentities($mailkontakt_name);
$new_mailkontakt_name = str_replace (";","",$new_mailkontakt_name);
$new_mailkontakt_name = str_replace ("--","",$new_mailkontakt_name);
$new_mailkontakt_name = str_replace ("'","",$new_mailkontakt_name);
$new_mailkontakt_name = str_replace ("\"","",$new_mailkontakt_name);
$new_mailkontakt_name = htmlentities($new_mailkontakt_name);
$mailkontakt_email = str_replace (";","",$mailkontakt_email);
$mailkontakt_email = str_replace ("--","",$mailkontakt_email);
$mailkontakt_email = str_replace ("'","",$mailkontakt_email);
$mailkontakt_email = str_replace ("\"","",$mailkontakt_email);
$mailkontakt_email = htmlentities($mailkontakt_email);
$new_mailkontakt_email = str_replace (";","",$new_mailkontakt_email);
$new_mailkontakt_email = str_replace ("--","",$new_mailkontakt_email);
$new_mailkontakt_email = str_replace ("'","",$new_mailkontakt_email);
$new_mailkontakt_email = str_replace ("\"","",$new_mailkontakt_email);
$new_mailkontakt_email = htmlentities($new_mailkontakt_email);
if (($mailkontakt_sil!="Y") and ($mailkontakt_sil!="N")) $mailkontakt_sil!="N";
if (($mailkontakt_spd!="Y") and ($mailkontakt_spd!="N")) $mailkontakt_spd!="N";
if (($new_mailkontakt_sil!="Y") and ($new_mailkontakt_sil!="N")) $new_mailkontakt_sil!="N";
if (($new_mailkontakt_spd!="Y") and ($new_mailkontakt_spd!="N")) $new_mailkontakt_spd!="N";
if (($mailkontaktid>0) and $mailkontakt_name and $mailkontakt_email
    and $mailkontakt_sil and $mailkontakt_spd and ($do=="edit")) {
  if ($save=="yes") {
    $sql = "UPDATE mailkontakt SET mailkontakt_name=\"$mailkontakt_name\", ".
           "mailkontakt_email=\"$mailkontakt_email\", mailkontakt_sil=\"$mailkontakt_sil\", ".
           "mailkontakt_spd=\"$mailkontakt_spd\" WHERE mailkontaktid=$mailkontaktid";
  } // end if
  if ($del_user=="yes") {
    $sql = "DELETE FROM mailkontakt WHERE mailkontaktid=$mailkontaktid";
    $view_mailkontaktid = 0;
  } // end if
  $db->query($sql);
} // end if
if ($new_mailkontakt_name and $new_mailkontakt_email and $new_mailkontakt_sil
    and $new_mailkontakt_spd and ($do=="new")) {
  $sql = "INSERT INTO mailkontakt VALUES('', \"$new_mailkontakt_name\", ".
           "\"$new_mailkontakt_email\", \"$new_mailkontakt_sil\", \"$new_mailkontakt_spd\")";
  $db->query($sql);
  $view_mailkontaktid = 0;
} // end if
$sql = "SELECT * FROM mailkontakt ORDER BY mailkontaktid";
$db->query($sql);
$db->next_record();
$nr = $db->num_rows();
if (($nr>=1) and ($view_mailkontaktid<1)) {
  $view_mailkontaktid = $db->f("mailkontaktid");
} // end if
if ($nr < 1) $display = " display:none;";
echo "
 <!-- start Mailkontakt-backend -->
 <table width=\"600\" cellspacing=\"0\" cellpadding=\"3\" border=\"0\" style=\"font-size: 10pt;\">
  <tr valign=\"top\">
   <td>
    <input type=\"radio\" name=\"do\" value=\"edit\">
     <b>Bereits vorhandenen Empfänger einsehen und dann evtl. bearbeiten oder löschen:</b>
   </td>
  </tr>
  <tr>
   <td align=\"center\">
    <select name=\"view_mailkontaktid\" style=\"width: 400px;\">";
for ($i=0; $i<$nr; $i++) {
  if (($db->f("mailkontaktid")) == $view_mailkontaktid) {
    $mailkontakt_name = $db->f("mailkontakt_name");
    $mailkontakt_email = $db->f("mailkontakt_email");
    $mailkontakt_sil = $db->f("mailkontakt_sil");
    $mailkontakt_spd = $db->f("mailkontakt_spd");
    $a = " selected";
  } else {$a = "";}
  echo "
     <option value=\"".($db->f("mailkontaktid"))."\"".$a."> ".($db->f("mailkontakt_name")).
     "  <".($db->f("mailkontakt_email"))."> ";
  $db->next_record();
} // end for
echo "
    </select>
   </td>
  </tr>
  <tr><td> </td></tr>
  <tr><td align\"center\">
   <table align=\"center\" width=\"600\" border=\"0\" cellpsacing=\"0\" cellpadding=\"0\"
    style=\"font-size: 10pt; border: 1px;border-color: #000000;
    border-style: solid; background-color: #EFEFEF;".$display."\">
    <tr>
     <td width=\"20\"><b>ID</b></td>
     <td width=\"245\"><b>Empfänger-Name</b></td>
     <td width=\"245\"><b>Empfänger-Email</b></td>
     <td width=\"45\"><b>sil</b></td>
     <td width=\"45\"><b>spd</b></td>
    </tr>";
echo "
    <tr>
     <td>
      <input type=\"hidden\" name=\"mailkontaktid\" value=\"".$view_mailkontaktid."\">".$view_mailkontaktid."
     </td>
     <td><input type=\"\" name=\"mailkontakt_name\" value=\"".$mailkontakt_name."\" size=\"32\"></td>
     <td><input type=\"\" name=\"mailkontakt_email\" value=\"".$mailkontakt_email."\" size=\"32\"></td>
     <td align=\"center\">
      <select name=\"mailkontakt_sil\">
       <option value=\"Y\"";
if ($mailkontakt_sil == "Y") echo " selected";
echo ">Y
       <option value=\"N\"";
if ($mailkontakt_sil == "N") echo " selected";
echo ">N
      </select>
     </td>
     <td align=\"center\">
      <select name=\"mailkontakt_spd\">
       <option value=\"Y\"";
if ($mailkontakt_spd == "Y") echo " selected";
echo ">Y
       <option value=\"N\"";
if ($mailkontakt_spd == "N") echo " selected";
echo ">N
      </select>
     </td>
    </tr>";
echo "
    <tr><td colspan=\"5\"> </td></tr>
    <tr>
     <td> </td>
     <td align=\"left\">
      <input type=\"checkbox\" name=\"del_user\" value=\"yes\">
      !* Empfänger löschen *!
     </td>
     <td colspan=\"3\" align=\"right\">
      <input type=\"checkbox\" name=\"save\" value=\"yes\">
      Änderungen übernehmen.
     </td>
    </tr>
    <tr><td colspan=\"5\"> </td></tr>
   </table>
  </tr>
  <tr><td> </td></tr>
  <tr><td> </td></tr>
  <tr valign=\"top\">
   <td>
    <input type=\"radio\" name=\"do\" value=\"new\">
     <b>Einen neuen Empfänger anlegen:</b>
   </td>
  </tr>
";
echo "
<tr><td align\"center\">
   <table align=\"center\" width=\"600\" border=\"0\" cellpsacing=\"0\" cellpadding=\"0\"
    style=\"font-size: 10pt; border: 1px;border-color: #000000;
    border-style: solid; background-color: #EFEFEF;\">
    <tr>
     <td width=\"20\"><b>ID</b></td>
     <td width=\"245\"><b>Empfänger-Name</b></td>
     <td width=\"245\"><b>Empfänger-Email</b></td>
     <td width=\"45\"><b>sil</b></td>
     <td width=\"45\"><b>spd</b></td>
    </tr>";
echo "
    <tr>
     <td>N</td>
     <td><input type=\"\" name=\"new_mailkontakt_name\" size=\"32\"></td>
     <td><input type=\"\" name=\"new_mailkontakt_email\" size=\"32\"></td>
     <td align=\"center\">
      <select name=\"new_mailkontakt_sil\">
       <option value=\"Y\">Y
       <option value=\"N\">N
      </select>
     </td>
     <td align=\"center\">
      <select name=\"new_mailkontakt_spd\">
       <option value=\"Y\">Y
       <option value=\"N\">N
      </select>
     </td>
    </tr>";
echo "
    <tr><td colspan=\"5\"> </td></tr>
   </table>
  </tr>
  <tr><td> </td></tr>
  <tr><td> </td></tr>";
echo "
  <tr valign=\"top\">
   <td><pre>
   <b><u>
 Legende:</u></b><br>
  » sil = \"show in list\",
    bedeutet dass der Empfänger in dem Drop-Down-Menü für den Endnutzer erscheint.
    Mögliche Werte sind \"Y\" für \"YES\" und \"N\" für \"NO\".<br>
  » spd = \"send per default\",
    bedeutet dass diesem Empfänger auf jeden Fall eine Kopie der Email zugeht,
    falls er nicht in der Drop-Down-Liste angezeigt wird.
    Die möglichen Werte entsprechen denen von \"sil\".<br>
   </pre></td>
  </tr>
 </table>
 <!-- end Mailkontakt-backend -->
 ";
$db->query("UNLOCK TABLES"); // UNLOCK TABLES
Code: Alles auswählen
<?php
/*******************************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname      :  Mailkontakt
* Author         :  agon
* Copyright      :  Contenido - four for business
* Created        :  05-11-2003
* Modified again :  July. 06th 2004 by Lars D. Forseth <lars@forseth.de>
********************************************************/
echo "
<!-- start Mailkontakt output -->
";
$db = new DB_Contenido;
/* data was given */
if (($mail == "yes") and (strlen($from_name)>1) and
    (strlen($from_mail)>5) and (strlen($mailkontaktid)>0) and (strlen($comment)>2)) {
  // if invalid mailkontaktid given
  if (!(eregi("([0-9]{1,11})",$mailkontaktid))) {
    $error = "
         <!-- error: invalid mailkontaktid given -->
         <br><br><br>
         <center><font color=\"darkred\"><b>
         Diesen Empfänger gibt es nicht (mehr)!
         <br>
         Versuch' es später bitte nochmal.
         </b></font></center>
         <br><br><br>
         ";
    break;
  } // end if invalid mailkontaktid given
  // filter $from_name:
  for ($i=0; $i<strlen($from_name); $i++) {
    if (!eregi("[a-zA-Z0-9-_ |\n|\t|\r]",$from_name[$i]))
      str_replace($from_name[$i],"");
  }
  // end "filter $from_name"
  $sql = "SELECT * FROM mailkontakt WHERE mailkontaktid=$mailkontaktid ".
         "OR mailkontakt_spd=\"Y\" ORDER BY mailkontaktid";
  $db->query($sql);
  $db->next_record();
  $nr = $db->num_rows();
  $mailto = "";
  $spd = "";
  $mailkontakt_name = "";
  $header="From:".$from_name."<".$from_mail.">";
  // no data in DB
  if ($nr < 1) {
    $error = "
         <!-- error: no data in DB -->
         <br><br><br>
         <center><font color=\"darkred\"><b>
         Diesen Empfänger gibt es nicht (mehr)!
         <br>
         Versuch' es später bitte nochmal.
         </b></font></center>
         <br><br><br>
         ";
    break;
  } // end no data in DB
  // get recipients from DB
  for ($i=0; $i<$nr; $i++) {
    if ($mailkontaktid == ($db->f("mailkontaktid"))) {
      $mailto = ($db->f("mailkontakt_email"));
      $mailkontakt_name = $db->f("mailkontakt_name");
    } // end if
    if (!($mailkontaktid == ($db->f("mailkontaktid"))) and (($db->f("mailkontakt_spd"))=="Y")) {
      $spd .= ",".($db->f("mailkontakt_email"));
    } // end if
    $db->next_record();
  } // end "get recipients from DB"
  if (strlen($mailto) < 5) {
    $tmp = explode(",",$spd,2);
    $mailto = $tmp[1];
  } else {$mailto .= $spd;}
  // check if email-adress from user is correct
  $length = (int) (strlen($from_mail));
  if ($length > 100 or $length < 5) {$length_err = 1;}
  else {$length_err = 0;}
  $valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$from_mail));
  if (strlen($error)>3) {echo $error;}
  else { // no error occured
    if (!($valid==1) or ($length_err==1)) {
      $links        = explode('?',$PHP_SELF);
      $link         = $links[0];
      $link         = $link."?idcat=".$idcat; // back-link
      echo "
<br><br><br>
<font color=\"red\"><b>
 <u>ACHTUNG:</u><br>
 Die angegebene eMail-Adresse ist ungültig!<br>
 Bitte überprüfen...<br><br>
 <center>
  <form action=\"$link\" method=\"post\">
   <input type=\"hidden\" name=\"mailkontaktid\" value=\"$mailkontaktid\">
   <input type=\"hidden\" name=\"from_name\" value=\"$from_name\">
   <input type=\"hidden\" name=\"from_mail\" value=\"$from_mail\">
   <input type=\"hidden\" name=\"comment\" value=\"$comment\">
   <input type=\"submit\" value=\"« zurück\">
  </form>
 </center>
</b></font>
<br><br>";
    } // end check user email-address
    else {
      /* for security reasons in case of spam and the kind */
      $now = date("l dS of F Y \@ G:i:s"); // Example: Wednesday 15th of January 2004 15:51:38
      $ip = getenv("REMOTE_ADDR");
      $comment .= "\n\n\n\nThis mail was sent from the IP-address ".$ip." on ".$now." .\n";
      /* finally mail message */
      mail($mailto,"Kontaktanfrage durch adulo.net/AduloDE",$comment,$header);
      // give confirmation to user:
      if (strlen($mailkontakt_name) < 1) $mailkontakt_name = "uns";
      echo "
<br><br><br><br>
<font color=\"red\"><i>Folgende Nachricht ging eben an  <b>".$mailkontakt_name."</b> raus:</i></font>
<br><br><br>
<table border=\"0\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\">
 <tr>
  <td class=\".mailformular\"><b>Absender:</b></td>
  <td>  </td>
  <td width=\"90%\" class=\".mailformular\">";
      echo $from_name." <".$from_mail.">";
      echo "</td>
 </tr>
 <tr>
  <td> </td>
  <td> </td>
  <td> </td>
 </tr>
 <tr>
  <td class=\".mailformular\"><b>Empfänger:</b></td>
  <td>  </td>
  <td width=\"90%\" class=\".mailformular\">".$mailkontakt_name."</td>
 </tr>
 <tr>
  <td> </td>
  <td> </td>
  <td> </td>
 </tr>
 <tr>
  <td> </td>
  <td> </td>
  <td> </td>
 </tr>
 <tr valign=\"top\">
  <td class=\".mailformular\"><b>Nachricht:</b></td>
  <td>  </td>
  <td class=\".mailformular\">".nl2br($comment)."</td>
 </tr>
</table>
<br><br><br>";
    } // end else ("user's email-addres is ok")
  } // end else ("no error occured")
} // end "data was given"
/* no data was given (yet), so give back form */
else {
  $db1 = new DB_Contenido;
  $sql1 = "SELECT * FROM mailkontakt WHERE mailkontakt_sil=\"Y\" ORDER BY mailkontakt_name";
  $db1->query($sql1);
  $db1->next_record();
  $nr1 = $db1->num_rows();
  if ($nr1 > 0) $show_list = "yes";
  $sql = "SELECT * FROM mailkontakt ORDER BY mailkontaktid";
  $db->query($sql);
  $db->next_record();
  $nr = $db->num_rows();
  /* there are recipients in DB */
  if ($nr > 0) {
    echo "<br><br><br>";
    // not all fields were filled during last submission!
    if ($mail == "yes") {
      echo "
  <font class=\".mailformular\"><font color=\"red\">
   <u>ACHTUNG:</u> <i>Bitte alle Felder <b>korrekt</b> ausfüllen!</i>
  </font></font><br><br>";
    } // end if "not all fields filled"
    echo "
  <form name=\"mail\" action=\"".$auth->url()."\" method=\"post\" class=\".mailformular\">
  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
  ";
    /* if there are any recipients with sil=="Y" */
    if ($show_list == "yes") {
      echo"
   <tr>
    <td  valign=\"middle\" class=\".mailformular\">Empfänger:</td>
    <td> </td>";
      echo "
    <td>
     <select name=\"mailkontaktid\" style=\"width: 251px;\">";
      for($x=0; $x<$nr1; $x++){
        echo "
      <option value=\"".($db1->f("mailkontaktid"))."\"";
        if (($db1->f("mailkontaktid")) == $mailkontaktid) echo " selected";
        echo ">".($db1->f("mailkontakt_name"));
        $db1->next_record();
      } // end for
      echo "
     </select>
    </td>
    ";
      // end drop-down-menu
      echo "
    <td>    </td>
   </tr>";
   } // end if($show_list == "yes")
   else {echo "<tr><td colspan=\"4\"><input type=\"hidden\" name=\"mailkontaktid\" value=\"0\"</td></tr>";}
   echo "
   <tr>
    <td class=\".mailformular\" valign=\"middle\"><!--Dein--> Name:</td>
    <td> </td>
    <td><input type=\"text\" name=\"from_name\" size=\"38\" value=\"".$from_name."\" maxlength=\"100\"></td>
    <td>    </td>
   </tr>
   <tr>
    <td class=\".mailformular\" valign=\"middle\"><!--Deine--> eMail-Adresse:  </td>
    <td> </td>
    <td><input type=\"text\" name=\"from_mail\" size=\"38\" value=\"".$from_mail."\" maxlength=\"100\"></td>
    <td>    </td>
   </tr>
   <tr>
    <td class=\".mailformular\" valign=\"middle\"><!--Deine--> Nachricht:</td>
    <td> </td>
    <td>
     <text"."area cols=\"45\" rows=\"10\" name=\"comment\" style=\"width:250px\" wrap=\"physical\">".
      $comment.
    "</text"."area></td>
    <td>    </td>
   </tr>
   <tr>
    <td colspan=\"4\" align=\"center\">
     <br>
     <input type=\"hidden\" name=\"mail\" value=\"yes\">
     <input type=\"submit\" value=\"Mail senden »\">
    </td>
   </tr>
  </table>
 </fo"; echo "rm>
 <br><br>";
  } // end "there are recipients in DB"
  /* there are no recipients in DB */
  else {
    echo "
    <br><br><br>
    <center><font color=\"darkred\"><b>
     Momentan sind leider keine Empfänger in der Datenbank eingetragen,
     bitte versuch' es später nocheinmal.
    </b></font></center>
    <br><br><br>
    ";
  } // end "there are no recipients in DB"
} // end "no data was given (yet)"
echo "
<!-- end Mailkontakt output -->
";
?>
Kann das jemand abändern oder gibt es da schon ein ähnliches Modul, welches mehrmandantenfähig ist?
Danke und Grüße
Bachi
