kostenloser Webspace werbefrei: lima-city


PHP-Mailscript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    z****9

    Hi,
    Hab mal ein Mail-Script erstellt, das irgendwie keine e-mails verschickt. Es wird alles erkannt Textfelder usw. (ausser checkbox aber das ist ein anderes Problem). Ich warte und warte aber es wird nichts verschickt.
    hier der script:

    <?php
              if(!$name)
                {
                  echo "Geben sie bitte ihren Namen an.<br /><br />";
                  echo "<a href=javascript:history.back(1)>Zur&uuml;ck</a>";
                }
              elseif(!$from)
                {
                  echo "Sie m&uuml;ssen ihre E-Mail-Adresse angeben.<br /><br />";
                  echo "<a href=javascript:history.back(1)>Zur&uuml;ck</a>";
                }
             elseif (! ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $from))
                {
                  echo "Die E-Mail-Adresse ist ung&uuml;ltig!<br /><br />";
                  echo "<a href=javascript:history.back(1)>Zur&uuml;ck</a>";
                }
              elseif(!$subject)
                {
                  echo "Sie m&uuml;ssen einen Betreff eingeben.<br /><br />";
                  echo "<a href=javascript:history.back(1)>Zur&uuml;ck</a>";
                }
              elseif(!$message)
                {
                  echo "Was ist ihre Nachricht?<br /><br />";
                  echo "<a href=javascript:history.back(1)>Zur&uuml;ck</a>";
                }
              else
                {
                	$temp=$_GET['to'];
                	$reciv=array("mail1","mail2");
                	$reciv=$reciv[$temp-1];
                	$subject=$_GET['subject'];
                	$from="From: ".$_GET['from']."\n";
                	$message="Absender: ".$_GET['name']."\n";
                	$message.="Ihnen wurde eine Nachricht &uuml;ber das Kontaktformular &uuml;bermittelt:\n\n";
                	$message.=$_GET['message'];
                	mail($reciv,$subject,$message,$from);
                	echo "Ihre Nachricht wurde &uuml;bermittelt.<br /><br />";
                	echo
                	?>
                      <a href="index.php?site=kontakt">Zur&uuml;ck</a>
                	<?
                	if($_GET['copy']=="on")
                	 {
                		  mail($from,$subject,$message);
                		  echo "Eine Kopie der Nachricht wurde an Sie geschickt.<br /><br />";
                   }
                }
            ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du benutzt zum Versand die mail()-Funktion und die macht z.Zt. Probleme, siehe http://www.lima-city.de/thread/6-9-2010-aktuelle-probleme

    Alternative: SMTP Versand mit PHPMailer oder PEAR
  4. Autor dieses Themas

    z****9

    Des mit dem Lima-Mail-Problem kenn ich ja.
    Aber was ich vergessen habe zu sagen ist, dass ich eine Seite der Schule verwalte. Der Host ist Perfekt und Probleme hat der fast nie.
    Mit einem einfachen mail-script habe ich des hingekriegt, also in mail() alles angegeben ohne variablen. Aber mit dem Code von gerade gings nimmer.
  5. Ah, so genau hatte ich mir das Skript nicht angeschaut. Sorry! Kommt das Skript denn bis zum else? Sieht so aus, als würdest Du auf GET Variablen global zugreifen, da du $name etc. verwendest. Vielleicht spielt da die register globals Einstellung eine Rolle.
  6. Autor dieses Themas

    z****9

    also das sind 2 dateien. die eine datei ist das kontakt-formular und da sind die ganzen textboxen und so weiter. und es kommt bis zum else, denn ich hab alles schon getestet, falls name, email, text und betreff nicht eingegeben ist, zeigt es wie verlangt alles an. und wenn alles eingegeben ist, dann "verschickt" es die nachricht und es kommt auch, dass die mail verschickt wurde. des ist kein problem. Prblem ist, dass ich bis jetzt keine mail bekommen haben
  7. $temp=$_GET['to'];
                    $reciv=array("mail1","mail2");
                    $reciv=$reciv[$temp-1];


    Stehen hier in Zeile 2 echte Mailadressen drin? Warum fragst Du über GET['to'] ab, an wieviele der festen Empfänger gesendet werden soll?
  8. Autor dieses Themas

    z****9

    das to ist eine "select" mit "options". Zwei Options mit echten addressen (ich geb doch natürlich nicht im Forum E-Mail addresen bekannt...)
    Die array beginnt ja mit 0 und der Select Value mit 1 deshalb muss ich 1 abziehen, damit die richtige addresse rauskommt.
  9. ich geb doch natürlich nicht im Forum E-Mail addresen bekannt

    Das ist schon klar, sollte man aus Spamschutzgründen auch nicht machen. Es ist aber nicht ganz klar, wo die echte e-mail Adresse steht.

    So wie es programmiert ist, wird als Empfänger der entsprechende Eintrag aus dem reciv-Array gewählt. Und hier steht jetzt im Beispiel mail1 / mail2. Sind hier evtl. dann die echten mail-adressen enthalten? Dann gibt das Select Feld nur eine Option vor, welche der beiden mail-Adressen verwendet werden soll. Oder gibst du über das Select-Feld die komplette e-mail-Adresse vor, so dass später in $_GET['to'] z.B. "meineMail@domain.de" enthalten ist?
  10. Autor dieses Themas

    z****9

    habs jetzt geändert und hoffe, dass es so verständlicher und einfacher wird.
    im Kontaktformular steht dan bei den select-options z.B

    ...value="1">Webmaster
    ...value="2">Verantwortlicher

    aber keine richtigen mails

    else
                {
                	if ($to == "1")
                    {
                      $recive = "max.mustermann@maxiland.de";
                    }
                	elseif ($to == "2")
                    {
                      $recive = "moritz.mustermann@maxiland.de";
                    }
                	.
                    .
                    .
  11. Um den Fehler einzugrenzen (und eigentlich sowieso immer), ändere mal folgendes:
    if (mail($reciv,$subject,$message,$from)==true){
                	echo "Ihre Nachricht wurde &uuml;bermittelt.<br /><br />";
    }else{
                	echo "Ein Fehler ist aufgetreten, Ihre Nachricht konnte nicht &uuml;bermittelt werden!<br /><br />";
    }

    Weißt Du zufällig ob der Host ein Windows- oder ein Linux-System hat ?
    Und um mal so ganz blöde Fehler auszuschließen:
    Hast Du Deinen SPAM/unbekannt-Ordner bei Deinen Emails gecheckt?
    In Deinem letzten Post müsste übrigens bei $recive das 'e' weg.

    Bringt das alles nichts wirf mal den Inhalt (Email kannst Du ja editieren) von $reciv,$subject,$message und $from aus.

    Beitrag zuletzt geändert: 20.9.2010 23:06:56 von simuliertes
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!