PDA

Vollständige Version anzeigen : Email mit xampp testen (Mercury)


Everlast3310
15.04.2010, 17:17
Hallo, bin gerade dabei PHP zu lernen und habe da ein script geschrieben, welches ich offline mit xampp testen wollte. Leider bekomme ich eine Fehlermeldung.

Warning: mail() [function.mail (http://localhost/kapitel03/function.mail)]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\emailtest.php on line 27

Jetzt weis ich nicht ob es an meinem script liegt oder ob ich da in xampp noch was einstellen muss.

Hier mal mein script:
<html>
<head>
<title>Formular</title>
</head>
<body>
<?php
$fehler = "";


if (isset($_POST["email"])){
if (trim($_POST["email"]) != ""){
$email = $_POST["email"];
}else{
$fehler = $fehler. "Email angeben!<br>";
}

if (isset($_POST["nachricht"]) && trim($_POST["nachricht"]) !=""){
$nachricht = $_POST["nachricht"];
}else{
$fehler = $fehler. "Nachricht angeben!<br>";
}

if ($fehler != ""){
echo $fehler;
}else{
echo "Daten verschicken: " . $_POST["email"] . " " . $_POST["nachricht"];
mail("newuser@localhost", "PHP-FRAGE", $nachricht, "From:" . $email);
}
}



?>
<hr>
<form method="post" action ="<?php echo $_SERVER["SCRIPT_NAME"] ?>">
Email-Adresse<br>
<input type="text" name="email" value="<?php echo $email ?>"/><br>
Nachricht:<br>
<textarea rows="10" cols="50" name="nachricht"><?php echo $nachricht ?></textarea><br>
<input type="submit" value="Abschicken" />
</form>
</body>
</html>Würde mich über Hilfe freuen.

dude32
15.04.2010, 17:26
haste mercury mail für xampp auch instaliert???

Everlast3310
15.04.2010, 17:39
Ja, habe ich. Hab das beim Test auch eingeschaltet und stand auf running.

jpwfour
15.04.2010, 19:02
Am Script liegt es nicht, der Fehler sagt ja aus, dass PHP nicht mit dem lokalen (sofern überhaupt vorhandenen & gestarteten?) Mailserver kommunizieren kann.

Evtl. ist es für das Testen praktischer, das Fake-Sendmail für Windows zu benutzen (sofern du Windows auf dem Testrechner hast, gehe mal von aus das du ja XAMPP nutzt :biggrin1:), sollte an sich dabei sein, wenn nicht: http://glob.com.au/sendmail/

Dazu sollte es dann ausreichen, in der php.ini :
sendmail_path = "C:\Pfad\zu\xampp\sendmail\sendmail -t"einzutragen/ändern.

Im sendmail musst du an sich nix einstellen, nur debug logfile aktivieren, dann tauchen dadrin die Mails auf (werden aber nicht wirklich verschickt), oder du gibst einen SMTP Server (web.de,googlemail,....) an, in dem Falle gehen die darüber raus (hat mehr Chancen, dann auch anzukommen, als einen eigenen Mailserver zu betreiben ohne Domain usw.)

Machtrag: wenn dus doch mit Mercury versuchen willst, gier zwei Links:
http://www.zoe.vc/2008/mercury-mail-transport-system-fur-externe-mail-konfigurieren/
http://www.google.de/#hl=de&q=xampp+mercury+Failed+to+connect+to+mailserver+at +%22localhost%22+port+25%2C+verify+your+%22SMTP%22 +and+%22smtp_port%22+setting+in+php.ini+or+use+ini _set()

Everlast3310
15.04.2010, 19:44
Hm, erstmal danke. Ich glaube der fehler liegt darin, dass ich Win 7 64 bit version nutze. Habe in der php.ini von xampp gesehen, dass der fakemailtest nur für 32 bit ist. :-(

Naja egal, danke für deine Hilfe. Habs dann halt mal online getestet und in der mailfunction meine emailadresse angegeben und hat funktioniert.