php maill(), muss ich den smtp server noch einstellen?

  1. Diskordia

    Diskordia Thread StarterMacUser Mitglied

    Mitglied seit:
    25.06.2004
    Beiträge:
    439
    Zustimmungen:
    2
    Hallo zusammen

    Ich hab n kleines Problem bei meiner Webpage und zwar möchte ich mit der php Funktion mail() Daten versenden. Jetzt arbeitet er meinen Code wunderbar ab, bringt keine Fehlermeldung, nichts. Es sieht so aus als hätte es geklappt, aber ich bekomm das mail nicht. Jetzt weiss ich nicht, ob ich da noch was konfigurieren muss, oder ob das per Voreinstellung auf dem Max OS 10.4 Server gehen müsste.
    Ich glaube zwar nicht, dass etwas an meinem Code falsch ist, ich poste es zur Sicherheit dennoch mal:
    PHP:
    <?
    $email $_POST['email'];
    $subject $_POST['subject'];
    $text $_POST['text'];
    if (
    $email!="" AND $subject!="") {
    $to      "beispiel@domain.ch";
    $xtra    "From: beispiel@domain.ch (Ab Sender)\r\n";
    $xtra   .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
    $xtra   .= "X-Mailer: PHP "phpversion();
    mail($to,
         
    $subject,
         
    $text,
         
    $xtra);
    header("location: ../success.php");
    }
    else {
    header("location: ../error.php");
    }
    ?>
    Ähm, und keine Angst, die mailadressen habe ich angepasset :D

    GruZZ Diskordia
     
    Diskordia, 25.08.2005
  2. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    Nimm mal die header()-Befehle heraus. Laut PHP-Doku ist die Reihenfolge bei so etwas nicht definiert. Sprich ob der mail-Befehl noch abgearbeitet wird kann Glücksache sein. Dein mail-Befehl mag syntaktisch korrekt sein, die Frage ist aber ob der mailserver die mail versendet und der SMTP sie akzeptiert. Das stünde dann in den LOG-Dateien!
     
    wegus, 25.08.2005
  3. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Läuft das Skript bei Dir lokal oder beim Provider auf dem Webserver?
    Kann es sein, dass der Empfänger Mailserver die Mail bounced oder als SPAM einstuft und filtert?
     
    maceis, 25.08.2005
  4. Diskordia

    Diskordia Thread StarterMacUser Mitglied

    Mitglied seit:
    25.06.2004
    Beiträge:
    439
    Zustimmungen:
    2
    Also, das mit dem Headerbefehl muss ich mal austesten.
    Der Server ist eine eigene lokale Maschine mit dem 10.4 Server drauf. Und als SPAM wirds nicht deklariert, da der Mailserver SPAM nicht löscht, sondern nur als solches markiert.

    GruZZ Diskordia
     
    Diskordia, 25.08.2005
  5. Diskordia

    Diskordia Thread StarterMacUser Mitglied

    Mitglied seit:
    25.06.2004
    Beiträge:
    439
    Zustimmungen:
    2
    Also das mit den Headerbefehlen hab ich jetzt ausprobiert und es ändert leider nichts am Resultat :(
    Ich hab mal in Erfahrung gebracht, dass php auf Unixsystemen standardmässig sendmail benutzt. Nun, sendmail ist auf dem server drauf! Wo währe dann die logdatei? Da würde ich ja sehen ob die Daten versendet wurden.

    GruZZ Diskordia
     
    Diskordia, 25.08.2005
  6. Hilarious

    HilariousMacUser Mitglied

    Mitglied seit:
    25.11.2004
    Beiträge:
    2.161
    Zustimmungen:
    5
    Um das Logfile einsehen zu können, müsstest Du entsprechende Rechte haben. Sollte dies der Fall sein, könntest Du unter /var/log/ fündig werden. Versuch`s mal mit
    tail /var/log -f -n50
    Dies zeigt die letzten 50 Zeilen an und aktualisiert "live". Häufig erfordert aber ein neuerer Sendmail, dass Du mit SMTP-Auth versendest, oder anderweitig eine Freigabe zum Senden erhältst, damit nicht jeder diesen SMTP als Relais verwenden kann.

    Edit: Noch eine Idee: Versuch doch mal, den Rückgabewert der mail()-Methode zu verwenden (zu Debug-Zwecken):

    PHP:
    if ($result mail($to$subject$text$xtra)) {
        echo 
    "<pre>Juchei</pre>\n";
    } else {
        echo 
    "<pre>Bernd das Brot sagt: Mist.</pre>\n";
    }
     
    Hilarious, 25.08.2005
  7. stenser

    stenserMacUser Mitglied

    Mitglied seit:
    21.10.2003
    Beiträge:
    777
    Zustimmungen:
    2
    Und wie kann man SMTP Auth verwenden? Dazu muss ich doch dann auch irgendwo den SMTP-Server spezifizieren. Wo kann ich das dann noch machen?


    Jens
     
    stenser, 27.10.2006
  8. oneOeight

    oneOeightMacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.173
    Zustimmungen:
    3.889
    oneOeight, 27.10.2006
  9. catvarlog

    catvarlogMacUser Mitglied

    Mitglied seit:
    30.01.2005
    Beiträge:
    1.468
    Zustimmungen:
    1
    Das "lokal" könnte dein Problem sein. Evtl. geht die E-Mail nicht aus dem Server raus.

    Wenn ich mail() lokal auf 10.4.8 (client, nicht server) testen möchte, lasse ich die mail an einen lokalen user schicken.

    $to = "user_auf_der_maschine@localhost";

    Dann im terminal mit dem entsprechende User einloggen und dann "mail" starten (das konsoloneprogramm).
     
    catvarlog, 27.10.2006
Die Seite wird geladen...
Ähnliche Themen - php maill() muss
  1. mampfi
    Antworten:
    7
    Aufrufe:
    270
  2. simusch
    Antworten:
    2
    Aufrufe:
    187
    simusch
    04.05.2017
  3. Saugkraft
    Antworten:
    27
    Aufrufe:
    1.615
  4. alex1000
    Antworten:
    5
    Aufrufe:
    358
  5. KrisAusEU
    Antworten:
    7
    Aufrufe:
    846