PHP-Mailscript
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abziehen
adresse
array
betreff
code
datei
einstellung
email
fehler
feld
forum
host
message
mustermann
nachricht
problem
url
variablen global zugreifen
versand
warte
-
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ück</a>"; } elseif(!$from) { echo "Sie müssen ihre E-Mail-Adresse angeben.<br /><br />"; echo "<a href=javascript:history.back(1)>Zurü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ültig!<br /><br />"; echo "<a href=javascript:history.back(1)>Zurück</a>"; } elseif(!$subject) { echo "Sie müssen einen Betreff eingeben.<br /><br />"; echo "<a href=javascript:history.back(1)>Zurück</a>"; } elseif(!$message) { echo "Was ist ihre Nachricht?<br /><br />"; echo "<a href=javascript:history.back(1)>Zurü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 über das Kontaktformular übermittelt:\n\n"; $message.=$_GET['message']; mail($reciv,$subject,$message,$from); echo "Ihre Nachricht wurde übermittelt.<br /><br />"; echo ?> <a href="index.php?site=kontakt">Zurück</a> <? if($_GET['copy']=="on") { mail($from,$subject,$message); echo "Eine Kopie der Nachricht wurde an Sie geschickt.<br /><br />"; } } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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. -
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.
-
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
-
$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? -
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? -
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"; } . . .
-
Um den Fehler einzugrenzen (und eigentlich sowieso immer), ändere mal folgendes:
if (mail($reciv,$subject,$message,$from)==true){ echo "Ihre Nachricht wurde übermittelt.<br /><br />"; }else{ echo "Ein Fehler ist aufgetreten, Ihre Nachricht konnte nicht ü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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage