Hallo an alle,
ich habe mir ein Kontaktformular in php gebastelt, welches mit der mail()-Funktion an mich geschickt werden soll. Da ich keinen eigenen Mail-Server habe, habe ich die php.ini meines Web -Servers entsprechend modifiziert:
SMTP = smtpmail.t-online.de
username = XXX
password = XXXX
smtp_port = 25
sendmail_path = /usr/sbin/sendmail -t -i
Hier nun das Skript:
.
.
.
<?php// wenn das Formular übermittelt wurdeif(isset($_POST['abschicken'])){ while(list($feld,$wert)=each($HTTP_POST_VARS)){ // übermittelte Inhalte "entschärfen" $wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert); $$feld=$wert; // die übermittelten Variablen werden zum "Text der Email" zusammengefasst if($feld!="abschicken"){ $mailnachricht.=ucfirst($feld).": $wert\n"; } } $mailnachricht.="\nDatum/Zeit: ". date("d.m.Y H:i:s"); // Überprüfen ob alle Pflichtfelder gefüllt sind empty($nachname) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false; empty($vorname) ? $err[] = "<p>- Bitte den Vornamen angeben.</p>" : false; empty($email) ? $err[] = "<p>- Bitte die Email-Adresse angeben.</p>" : false; empty($text) ? $err[] = "<p>- Welchen Wunsch haben Sie? Bitte den Text eingeben.</p>" : false; // wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt if(!empty($err)) { echo "<p>Bitte korrigieren Sie folgende Fehler:</p>"; foreach($err as $fehler){ echo $fehler; } ?><form action="#" method="post"> <table width="100%" border="0" cellpadding="3" cellspacing="1"> <tr><td width="140" align="right">*Nachname:</td><td align="left"><input type="text" name="nachname" value="<?php echo $nachname; ?>" style="width:100%;" /></td></tr> <tr><td align="right">*Vorname:</td><td align="left"><input type="text" name="vorname" value="<?php echo $vorname; ?>" style="width:100%" /></td></tr> <tr><td align="right">Firma:</td><td align="left"><input type="text" name="firma" value="<?php echo $firma; ?>" style="width:100%" /></td></tr> <tr><td align="right">Postanschrift:</td><td align="left"><input type="text" name="strasse" value="<?php echo $strasse; ?>" style="width:100%" /></td></tr> <tr><td align="right">Telefon:</td><td align="left"><input type="text" name="telefon" value="<?php echo $telefon; ?>" style="width:100%" /></td></tr> <tr><td align="right">*E-Mail:</td><td align="left"><input type="text" name="email" value="<?php echo $email; ?>" style="width:100%" /></td></tr> <tr><td colspan="2"><textarea rows="12" style="width:100%" name="text"><?php echo $text; ?></textarea></td><td> </td></tr> <tr><td colspan="2" align="left" nowrap><input type="reset" value="Formular löschen" style="width:49%" /> <input type="submit" name="abschicken" class="button" value="Formular absenden" style="width:49%" /></td></tr> </table> </form> <p>*Pflichtfelder</p><?php // sind keine Fehler vorhanden, wird die Email versendet } else { $mailbetreff="Kontaktformular ".$_SERVER['HTTP_HOST']; // HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!! if(mail("meineEmailAdresse", $mailbetreff, $mailnachricht, "From: -fmeineEmailAdresse","\nReturn-Path: meineEmailAdresse")){ echo "<p>Vielen Dank für Ihre eMail!</p>"; } else { echo "<p>Ein Fehler ist aufgetreten!</p>"; } }// das Formular welches als erstes dem Besucher angezeigt wird} else { ?> <form action="#" method="post"> <table width="100%" border="0" cellpadding="3" cellspacing="1"> <tr><td width="140" align="right">*Nachname:</td><td align="left"><input type="text" name="nachname" value="" style="width:100%;" /></td></tr> <tr><td align="right">*Vorname:</td><td align="left"><input type="text" name="vorname" value="" style="width:100%" /></td></tr> <tr><td align="right">Firma:</td><td align="left"><input type="text" name="firma" value="" style="width:100%" /></td></tr> <tr><td align="right">Postanschrift:</td><td align="left"><input type="text" name="strasse" value="" style="width:100%" /></td></tr> <tr><td align="right">Telefon:</td><td align="left"><input type="text" name="telefon" value="" style="width:100%" /></td></tr> <tr><td align="right">*E-Mail:</td><td align="left"><input type="text" name="email" value="" style="width:100%" /></td></tr> <tr><td colspan="2"><textarea rows="12" style="width:100%" name="text"></textarea></td><td> </td></tr> <tr><td colspan="2" align="left" nowrap><input type="reset" value="Formular löschen" style="width:49%" /> <input type="submit" name="abschicken" value="Formular absenden" style="width:49%" /></td></tr> </table> </form> <p>*Pflichtfelder</p> <?php}?>
Wichtig ist ja diese Zeile hier:
if(mail("meineEmailAdresse", $mailbetreff, $mailnachricht, "From: -fmeineEmailAdresse","\nReturn-Path: meineEmailAdresse")){
echo "<p>Vielen Dank für Ihre eMail!</p>";
} else {
echo "<p>Ein Fehler ist aufgetreten!</p>";
}
}
Ich bekomme die Meldung, dass die Mail verschickt wurde, sie kommt jedoch nie an
Ich habe geachtet auf:
1. -f vor der eMail Adresse, da dieser 5. Parameter bei manchen Providern verlangt wird
2. Die Absenderadresse ist gleich der Versandadresse, damit die Mail von Provider akzeptiert wird ( auch der Return-Path ist gleich mit meiner Adresse: "\nReturn-Path: meineEmailAdresse") )
3. die php.ini wurde entsprechend abgeändert.
Leider kommt die Mail inner noch nicht an. Kann mir jemand helfen?
Vielen Dank