E- Mail automatisch versenden

Hallo zusammen,

ich schon wieder - ich hoffe Ihr könnt mir auch dieses mal weiterhelfen! Ich habe seit kurzem meine eigene F 401, F 403 und F 404 seite erstellt. Wenn jetzt die Seite aufgerufen wird, möchte ich, dass eine E- Mail mit der Adresse der aufgerufenen Seite und der Fehlercode an eine bestimmte E- Mail übermittelt wird. Ich habe auf dem Server PHP und MySql zur Verfügung stehen - müsste also funktionieren.

Gruß
HTML

Hey!
Ehrlichgesagt weiß ich nicht, ob das überhaupt geht, da ja kein wrikliches Dokument geöffnet wird, sondern weil es eben nicht gefunden wird. Also müsste das 404 Dokument ja wissen, von wo man kommt…

Über einen http referrer würde ich nicht machen, den gibts ja wahrscheinlich nicht mehr lange…
und er wird auch nicht immer übermittelt…

Siehe hier:
http://www.php-faq.de/q-http-referer.html

Mail versenden ist kein Problem über die mail Funktion…

Letzte Möglichkeit, die mir einfällt, wäre eine log Datei auf dem Server (von htaccess generiert), die du ab und zu mit einem Script aufrufst, welches dann die mails versendet…
Das würde ich an deiner Stelle mal googlen…

Vielleicht konnte dir das ja schon helfen!

VG Markus

Hallo Markus,

ich habe es jetzt mit einer Log Datei versucht. Funktioniert auch soweit! Jetzt weiß ich aber nicht, wie ich absoeicherere nach welcher URL gesucht wurde.

Theoretisch würde es ja reichen wenn die URL aus der Adresszeile abgespeichert wird.

Wie müsste ich den folgendne Code verändern?

<?php $text = "

Die F 404 Seite wurde aufgerufen\n"; // Dateiinhalt $dateiname = "test.txt"; // Name der Datei // Datei öffnen, // wenn nicht vorhanden dann wird die Datei erstellt. $handler = fOpen($dateiname , "a+"); // Dateiinhalt in die Datei schreiben fWrite($handler , $text); fClose($handler); // Datei schließen ?\> Vielen Dank für die schnelle Antwort

Hallo!
Soweit ich weiß wird per htaccess automatisch eine error.log Datei erstellt, welche das nicht erreichte Verzeichnis, den Zeitpunkt der Fehlmeldung und vieles mehr festhält…

Schau mal hier:
http://aktuell.de.selfhtml.org/artikel/server/apache…

Wie gut kennst Du dich denn mit PHP aus?
Ich sehe eigentlich nicht ein, Dir hier den kompletten Code zu basteln. Damit lernst Du ja auch nix.
Schau dir mal den Befehl mail() an. Siehe http://de3.php.net/manual/de/function.mail.php
Der dürfte weiterhelfen. MySQL brauchst Du dafür nicht, nur einen funktionierenden Mailserver.
Wenn Du nicht weiterkommst, kannst ja deinen Code (mit evtl. Fehlermeldung) hier posten. Dann schau ich nochmal, woran es liegt.

Sonst schau mal hier
/t/email-versenden-mit-php-was-brauche-ich/2677589
Oder hier
http://www.schattenbaum.net/php/mail.php

Hi,

so gehts:
[PHP]
$url= "$_SERVER[‚PHP_SELF‘] $_SERVER[‚QUERY_STRING‘] ";
$empfaenger = „[email protected]“;
$absendername = „Kontaktformular“;
$absendermail = „[email protected]“;
$betreff = „Fehlernummer“;
$text = „blablabla“;
mail($empfaenger, $betreff, $text, "From: $absendername ");
[PHP]

hallo, schau dir mal die php-funktion mail an, mit der solltest du dein ziel erreichen. hierzu müssen die fehlerseiten natürlich php-dateien sein.
gruß JW

Hi,

vielen Dank für deine Antwort! Dein Code funktioniert aber leider nicht! Ich erhalte folgende Meldung: "); ?>

Ich habe es jetzt mit dem folgenden Code versucht

<?php $url = "['PHP_SELF']
$SERVER =['QUERY\_STRING'] "; $empfaenger = "[[email protected]](mailto:[email protected])"; $absendername = "Kontaktformular"; $absendermail = "[[email protected]](mailto:[email protected])"; $betreff = "Fehlernummer"; $text = "blablabla"; mail($empfaenger, $betreff, $text, "From: $absendername "); ?\> Es funktioniert auch alles soweit aber: wie bekomme ich jetzt die URL auch in der E- Mail angezeigt? Vielen Dank im vorraus HTML

Hi,
indem Du die Variable $url z. B. zum Betreff oder zum Inhalt der Mail-Funktion hinzufügst:
mail($empfaenger, $betreff, $url, "From: $absendername ");

oder so:
$text = „Meine Fehlermeldungstext:\n“;
$text+=$url;
mail($empfaenger, $betreff, $text, "From: $absendername ");

Grüße

Paul

Hi,

der reine Code funktioniert, allerdings wird bei der ersten Möglichkeit in der E- Mail nur folgender Text gesendendet:
[‚PHP_SELF‘]
=[‚QUERY_STRING‘]
und bei der zweiten möglichkeit kommt nur eine 0 in mein Postfach!

Gruß
HTML

ok, mein Fehler. Du musst bei der Variablendefinition

$url= „$_SERVER[‚QUERY_STRING‘]“;

die Anführungszeichen weglassen, ansonsten wird das als String und nicht als Variable interpretiert, also müsste der gesamte Code lauten:

<?php $url = $_SERVER['QUERY_STRING'];
$empfaenger = "[[email protected]](mailto:[email protected])"; $absendername = "Kontaktformular"; $absendermail = "[[email protected]](mailto:[email protected])"; $betreff = "Fehlernummer"; $text = "Die folgende URL hat einen Fehler produziert:\n"; $text.=$url; mail($empfaenger, $betreff, $text, "From: $absendername "); ?\> Ich hatte außerdem verwechselt, dass man in PHP eine Variable mit "." und nicht mit "+" erweitert, deswegen muss es (wie oben schon eingebaut) heißen: $text.=$url; damit erweiterst Du die Variable $text um das, was rechts vom Gleichzeichen steht, also in diesem Fall um den Inhalt der Variable $url das "\n" in der Variablen $text erzeugt übrigens einen Zeilenumbruch. Grüße Paul

hallo,
du hast ja schon sinnvolle antworten bekommen.
damit das aber mit dem mail befehl funktioniert,
müssen diese f seiten durch php ausführbar sein.
haben die f seiten die richtige erweiterung?
füge das doch mal in deine f seiten ein:

<?php echo "hallo, ich bin ein kleiner schmock und gruesse die welt.";
?\>

Ich habe es jetzt mal auf einem XAMPP Server versucht. Dort funktioniert es!

haben die seiten .php als erweiterung?
sind diese ausführbar? (chmod)
schonmal einen mail befehl eingefügt?

<?php $to = '[email protected]';
$subject = 'blaehungen'; $message = 'ich habe die weltbesten blaehungen'; $from = 'Dein Name';
$header = "MIME-Version: 1.0\nContent-type:text/plain; charset=UTF-\nFrom:". $from . "\n";
mail($to, $subject, $message, $headers, '-f'.$from);
?>