Mailversand per Kontaktformular geht nicht richtig

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
lenuweit
Posts: 38
Joined: 2004-12-27 22:04
Location: Edewecht

Mailversand per Kontaktformular geht nicht richtig

Post by lenuweit » 2006-02-07 09:16

Hallo, Leute
ich habe da ein Problem mit einem Kontaktformular !
Das Problem besteht darin das das Formular keine Kopie an den Absender Zustellt, die nicht auf den Server Angelegt sind ! Also Versenden geht nur Local auf dem Server.
Was kann ich machen damit das Formular auch eine Kopie an den Absender Zustellt ?

Die email.php

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Kontakt<?php include ("inc/config.php"); echo("$url"); ?></title>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<?php

// Verweis auf StyleSheets (CSS)

include ("inc/config.php");

            echo("<link rel='stylesheet' href='$cssfile' type='text/css'>n");

?>
</head>
<body>
<?php

/*

FORMULAR (Aufruf, Verarbeitung)

*/

include ("inc/config.php");
// Funktionen für späteren Abruf
        function checkmail($abs)
        {
        if (eregi("^[a-z0-9]+([-_.]?[a-z0-9])+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}", $abs))
        {
        return FALSE;
        }
        else
        {
        return TRUE;
        }
        }

// Ausgabe der Ã?berschrift
echo('<h1>' . $titel . '</h1>');
if ($send=="true")
        {
        if ($vorname=="" || $nachname=="" || $abs=="" || $nachricht=="" || checkmail($abs))
        {
        echo ('<p>' . $intro . '</p>');
                if ($vorname=="" || $nachname=="" || $abs=="" || $nachricht=="")
                {
                echo ('<p class="meldung">Bitte alle <span class="unterstrichen">rot markierten Felder</span> ausf&uuml;llen.</p>');
                }
                else
                {
                if (checkmail($abs))
                    {
                    echo ('<p class="meldung">Bitte <span class="unterstrichen">korrekte E-Mail-Adresse</span> eingeben.</p>');
                    }
                }
        include ("inc/form.inc.php");
        }
        else
        {
                // Versendung E-Mails
                
                      if ($betreff==""){

                      $cst_betreff_1 ="Kontaktformular: (kein Betreff)";

                      }

                      else {

                      $cst_betreff_1 ="Kontaktformular: " . $betreff;

                      }

                      if ($betreff==""){

                      $cst_betreff_2 ="Kopie: (kein Betreff)";

                      }

                      else {

                      $cst_betreff_2 ="Kopie: " . $betreff;

                      }

                $datum=date("d.m.Y");
                $uhrzeit=date("H:i:s");

                $email_txt = file_get_contents("templates/email.txt");

                $email_txt = str_replace("[URL]", $url, $email_txt);
                $email_txt = str_replace("[ABSENDER_EMAIL]", $abs, $email_txt);
                $email_txt = str_replace("[ABSENDER_NAME]", $vorname . " " . $nachname, $email_txt);
                $email_txt = str_replace("[WEBMASTER_EMAIL]", $an, $email_txt);
                $email_txt = str_replace("[DATUM]", $datum . ", " . $uhrzeit, $email_txt);
                $email_txt = str_replace("[BETREFF]", $betreff, $email_txt);
                $email_txt = str_replace("[NACHRICHT]", $nachricht . "nnn---------------------------------------------nKontaktformular bereitgestellt von:nhttp://www.webdesign-moers.den---------------------------------------------", $email_txt);

                $kopie_txt = file_get_contents("templates/kopie.txt");

                $kopie_txt = str_replace("[URL]", $url, $kopie_txt);
                $kopie_txt = str_replace("[ABSENDER_EMAIL]", $abs, $kopie_txt);
                $kopie_txt = str_replace("[ABSENDER_NAME]", $vorname . " " . $nachname, $kopie_txt);
                $kopie_txt = str_replace("[WEBMASTER_EMAIL]", $an, $kopie_txt);
                $kopie_txt = str_replace("[DATUM]", $datum . ", " . $uhrzeit, $kopie_txt);
                $kopie_txt = str_replace("[BETREFF]", $betreff, $kopie_txt);
                $kopie_txt = str_replace("[NACHRICHT]", $nachricht . "nnn---------------------------------------------nKontaktformular bereitgestellt von:nhttp://www.webdesign-moers.den---------------------------------------------", $kopie_txt);


                      @mail($an,$cst_betreff_1,$email_txt,"From: ".$abs);
                      echo("<p>Die Nachricht wurde erfolgreich versendet!");
                      if ($kopie=="1")
                                            {
                                                @mail($abs,$cst_betreff_2,$kopie_txt,"From: ".$an);
                                                echo "</p>n<p>Eine Kopie wurde wie angefordert an ". $abs . " geschickt.</p>nn";
                                            }
                                            else
                                            {
                                                echo "</p>nn";
                                            }
                      echo('<p class="meldung">Vielen Dank!</p>');
        }
        }
else {
echo ('<p>' . $intro . '</p>');
include ("inc/form.inc.php");
}
echo ('');

?>
</body>
</html>
Die form.inc.php

Code: Select all

<?php


echo ('<form name="eingabe" method="POST" action="email.php">
<table>
<tbody>
<tr><td class="td_text">');

        if ($send=="true" && $vorname=="")
                                    {
        echo ('<span class="markiert">Vorname:</span>');
                                    }
        else
                                    {
        echo ('Vorname:');
                                    }

echo ('</td>
<td class="td_form">
<input type="Text" name="vorname" maxlength="80" title="Vorname" value="' . $vorname . '" class="feld">
</td></tr>
<tr><td class="td_text">');

        if ($send=="true" && $nachname=="")
                                    {
        echo ('<span class="markiert">Nachname:</span>');
                                    }
                                    else
                                    {
        echo ('Nachname:');
                                    }

echo ('</td>
<td class="td_form">
<input type="Text" name="nachname" maxlength="50" title="Nachname" value="' . $nachname . '" class="feld">
</td></tr>
<tr><td class="td_text">');

        if (($send=="true" && $abs=="") || (checkmail($abs) && $send=="true"))
                                    {
        echo ('<span class="markiert">E-Mail:</span>');
                                    }
        else
                                    {
        echo ('E-Mail:');
                                    }
echo ('</td>
<td class="td_form">
<input type="Text" name="abs" maxlength="60" title="E-Mail-Adresse" value="' . $abs . '"  class="feld">
</td></tr>
<tr><td class="td_text">
Betreff:</td>
<td class="td_form">
<input type="Text" name="betreff" maxlength="60" title="Betreff" value="' . $betreff . '"  class="feld">
</td></tr>
<tr><td colspan="2">');

        if ($send=="true" && $nachricht=="")
                                    {
        echo ('<span class="markiert">Nachricht / Kommentar:</span>');
                                    }
        else
                                    {
        echo ('Nachricht / Kommentar:');
                                    }

echo('</td></tr>
<tr><td colspan="2">
');

        // JavaScript für Zeichenzähler

        if ($counter=="1" && $wertmax!="0" && $wertmax>="200")
                                    {
        echo'<script language="JavaScript" type="text/javascript">
        <!--
        function CountMax()
        {
        var wert,max;
        max = ' . $wertmax . ';
        wert = max-document.eingabe.nachricht.value.length;
        if (wert < 0) {
        alert("Sie haben die maximale Zeichenanzahl von " + max + " Buchstaben erreicht!");
        document.eingabe.nachricht.value = document.eingabe.nachricht.value.substring(0,max);
        wert = max-document.eingabe.nachricht.value.length;
        document.eingabe.counter.value = wert;

        } else {
        document.eingabe.counter.value = max - document.eingabe.nachricht.value.length;
        }
        }
        //-->

        </script>';
                                    }
        else
                                    {
        echo '';
                                    }

echo('<textarea name="nachricht" cols="24" rows="5"');

if ($wertmax!="0" || $wertmax<"200")
        {
echo('');
        }
else {
echo('maxlength="' . $wertmax . '"');
}

if ($counter=="1" && $wertmax!="0" && $wertmax>="200")
                            {
echo(" onFocus="CountMax();" onClick="CountMax();" onChange="CountMax();" onKeyDown="CountMax();" onKeyUp="CountMax();">" . $nachricht . "</textarea>");
                            }

else
                            {
                                echo ("></textarea>");
                            }

if ($counter=="1" && $wertmax!="0" && $wertmax>="200")
                            {
echo("<div style="text-align: left;">Verbleibende Zeichen: <input name="counter" type="TEXT" size="3" class="counter" value="$wertmax" readonly title="Die Nachricht darf max. $wertmax Zeichen enthalten.">n</div>");
                            }

else
                            {
                                echo ("");
                            }

echo ('<tr><td colspan="2">
<input type="checkbox" name="kopie" value="1" />Kopie dieser Nachricht an mich.</td></tr>
<tr>
<td colspan="2" style="text-align: center; padding-top: 4px;">
<input type="hidden" name="send" value="true" />
<input type="Submit" value="A b s e n d e n" class="button">
</td></tr>
</tbody>
</table>
</form>');

?>

geo
Posts: 42
Joined: 2005-02-24 11:44
Location: Hannover

Re: Mailversand per Kontaktformular geht nicht richtig

Post by geo » 2006-02-07 18:57

Vermutlich ist dein Mailserver sinnvoll konfiguriert.

Wenn das ginge, was du vorhast, könnte ein Spammer das ausnutzen, indem er fremde Mailabdressen als Kopieadresse angibt.