Txt Datei auslesen und Inhalt als Mail versenden

pixel06

Grünschnabel
Hallo,


hoffe mir kann jemand einen Tipp geben.

Ich brauche für ein Kontrolltool eine Funktion, die den Inhalt einer
Textdatei (txt) aus liest und die vorhandenen Einträge als mir als
Mail zusendet.

Das auslesen ist nicht so das Problem, die Frage ist wie bekomme ich den
Inhalt in eine Mail Funktion übergeben.

Beim auslesen über eine while Schleife wird ja der Inhalt mit Echo ausgegeben,
wie übergebe ich aber den ausgegebenen Inhalt in eine Variable.

Komme da gerade nicht weiter, habe da bisher auch im Web kein passendes
Beispiel gefunden, an dem ich mich orientieren kann. Wahrscheinlich muss man es
anders umsetzen , über ein Array, ach keine Ahnung...

pi;-)
 
Ok gerne,



PHP:
<?php

   $handler= @fopen( "button.txt" ,"r" )

                or die ( "Kann die Datei <b>button.txt</b> nicht 
                              &ouml;ffnen, Fehler: <b>$php_errormsg</b>!");



            if(is_resource($handler))

            {

                  while(!feof($handler))
                  {


                  $adresse=fgets($handler,200);

                  echo $adresse."<br />";

                  }
                  fclose($handler);

            }

            else{


                 echo "Das Lesen der Datei button.txt ist 
                          leider nicht möglich";
            }



             $text1="Es sind folgende  Button Ereignisse bekannt. ";

             $text= $text1."<br>".$adresse;


           $name= $vname." ".$nname;

                               

         // Edit hatte es vergessen rauszunehmen

         // $text=$text1.$text2;
         //-----------------------------------------

          $mm_adresse ="test@domain.de";
          $ad_adresse ="admin@domain.de";

          $adname="Webmaster";



            $mm_betreff = "Protokoll zu Button Ereignissen der Formulare";


          $mm_von = "$adname <$ad_adresse>";

         $header = "From:  $mm_von\n";
         $header .="MIME-Version: 1.0\n";
         $header .="Content-Type: text/plain; charset=iso-8859-1\n";
         $header .="Content-Transfer-Encoding: 8bit\n";




         if(@mail("$mm_adresse", "$mm_betreff", "$text", "$header"))
         
           {

                            echo "Nachricht wurde versendet<br />";


           }

          else
           {
                   
             echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
           

         }





?>


Also die normale Ausgabe funktioniert soweit, beim versenden, na ja.
pi
 
Zuletzt bearbeitet:
heey,

PHP:
$adresse=fgets($handler,200); 

echo $adresse."<br />";

Da wird doch ers der inhalt an die Variable $adresse übergeben und dann wird wird die Variable ausgegeben.

Außerdem weist du der $text unterschiedliche werte zu. Erst schreibst du $text1 und $adresse rein und dann $text1 und $text2 oder so ählich. Das ergibt für mich keinen sinn.

Edit: ohh as seh ich ja jetz erst:
PHP:
if(@mail("$mm_adresse", "$mm_betreff", "$text", "$header"))
da kannst du dir die " sparen die brauchst du wenn du nur variablen ausgibst nicht.
PHP:
                  while(!feof($handler))
                  {


                  $adresse=fgets($handler,200);

                  echo $adresse."<br />";

                  }
warum nutzt du da ne while schleife und kein einfaches if?

Lg Nino
 
Zuletzt bearbeitet:
Ok, das mit der while Schleife ist die normale Methode (?!)
zum auslesen, ich wüßte nicht wie ichs sonst auslesen sollte.


PHP:
 while(!feof($handler))
                  {


                  $adresse=fgets($handler,200);

                  echo $adresse."<br />";

                  }

Die Echo Ausgabe ist nur zur Kontrolle gewesen, um zu sehen das er die txt Datei
auch wirklich aus liest.

Die Mailfunktion brauche ich doch, um die Daten als Mail zu senden oder gibt es dafür eine andere Möglichkeit, wie soll den ein If Abfrage die Daten aus der TXT Datei auslesen?

Ich weiß das man dazu Variablen braucht, genau das ist ja mein Problem.


pi
 
ich glaube du hast mich nicht ganz verstanden
entschuldige das ich mich undeutlich ausgedrückt habe

du sollst nur die Anführungszeichen (") weglassen bei der mail funktion
die Anfrührungszeichen geben eine Zeichenkette an und eine Variable ist keine Zeichenkette


sorry habe übersehen das du fgets benutzt.
fgets liest die datei zeilenweise aus.
nimm statt fgets einfach fread. das liest die ganze datei aus
dann sollte die ganze datei in der Variable $adresse stehen.
wenn du trotzdem fgets benutzen möchtest, dann musst du den inhalt an das ende der Variable $adresse ahängen mit ".=" kann ich dir aber nciht empfehlen
 
Zuletzt bearbeitet:
Also ich lasse mich gerne für eine andere Lösung überzeugen, zumal ich ja
bisher keine Lösung habe, ich probiere zur Zeit nur aus. Ich bin über jeden
Tip dankbar, dass mit einer If Abfrage war mir nicht bekannt, habe dazu auch bisher nichts gefunden.

Ich habe die Abfrage aus einem PHP Buch raus entwickel und da wurde nun mal keine andere Lösung vorgeschlagen.
Das ich den Inhalt erst ausgebe ( über echo), ist wirklich nur versuchsweise,
mehr nicht.

Warum das ganze Theater, das Script soll über einen CronJob die Abfrage aktivieren und ist nur zu Testzwecken gedacht.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Edit:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Habe es jetzt geschafft das die Daten aus der txt Datei ausgelesen werden, die eleganteste
Lösung ist es noch nicht aber es geht schon einmal in die richtige Richtung.

Fürs Archiv und interessierte:

PHP:
$inhalt = file('button.txt');

$daten = fopen('button.txt','r');

while (list($inhalt_key,$inhalt_val) = each($inhalt)) {


}



$inhalt = implode("",$inhalt);


Vielen Dank, für die Denkanstöße

pi
 
Zuletzt bearbeitet:
Zurück