Mail Anhang ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mail Anhang ?

    Hallo,

    vorweg: ich habe fast keien Kenntnisse in php. Verwende es eigentlich nur und scheibe selten eigene Scripte. Danke

    Nun zu meinem Problem.
    Ich möchte eine Formular haben, bei dem die User Daten editieren, die dann in eine Mail geschrieben werden (body) und gleichzeitig sollen sie in eine xml-Datei geschrieben werden. Diese Datei möchte ich an die Mail hängen und versenden. Nun habe ich ein kleines Script erstellt, bekomme aber das Versenden des Anhangs nicht hin. Die Datei wird erstellt und auch geschrieben. Wie kann ich die Datei an meine Mail anhängen ?

    Schon jetzt vielen Danke für Eure Hilfe !

    PHP-Code:
    <html>
    <head>
    <title>Mailer</title>
    </head>
    <body>

    <?php

    //****************************************
    // Start Mailer

    if($abschicken)
    {
        
        
    //**************************************
        // Externe Datei schreiben 
        
        // Datei anlegen
        
    $filename fopen("rohs.txt""w+");
        
        
    $filename 'rohs.txt';
        
        
    // Sichergehen, dass die Datei existiert und beschreibbar ist
        
    if (is_writable($filename)) {
        
           
    // Wir öffnen $filename im "Anhänge" - Modus.
           // Der Dateizeiger befindet sich am Ende der Datei, und
           // dort wird $somecontent später mit fwrite() geschrieben.
           
    if (!$handle fopen($filename"a+")) {
                 print 
    "Kann die Datei $filename nicht öffnen";
                 exit;
           }
        
           
    // Schreibe $somecontent in die geöffnete Datei.
           
    if (!fwrite($handle$somecontent)) {
               print 
    "Kann in die Datei $filename nicht schreiben";
               exit;
           }
        
           print 
    "<p>Fertig. Die Datei $filename wurde editiert: <ul><li>$somecontent</li></ul><p>";
        
           
    fclose($handle);
        
        } else {
           print 
    "Die Datei $filename ist nicht schreibbar";
        }
        
        
    // Ende Datei schreiben
        // **********************************
        
       
    if(empty($somecontent) || empty($name) || empty($email) || empty($text))
       {
          echo 
    "Bitte gehen Sie zur&uuml;ck und f&uuml;llen Sie alle Felder aus!";
       }
       else
       {
          while(list(
    $feld,$wert)=each($HTTP_POST_VARS))
          {
             if(
    $feld!="abschicken")
             {
                
    $mailnachricht.=ucfirst($feld).": $wert\n";
             }
          }
          
    $mailnachricht.="\nDatum/Zeit: ";
          
    $mailnachricht.=date("d.m.Y H:i:s");
          
    $mailbetreff="Daten RoHS";
          
    $mailbetreff.=$HTTP_POST_VARS[betreff];
          
    $mailattachment=add_attachment("$filename""xml-Datei");
          
    mail("mail@domain.de"$mailbetreff$mailnachricht"From: $email");
          echo 
    "<p>Vielen Dank für Ihre eMail!</p>";
       }
    }
    else
    {
       echo 
    "Ein Fehler ist aufgetreten.";
    }

    // Ende Mailer


    ?>

    <p><a href="rohs.php">zur&uuml;ck</a></p>
    </body>
    </html>
    Das beispiel könnt ihr unter folgendem Link sehen:
    http://www.bueltge.de/rohs/

    Danke und liebe Grüsse

  • #2
    Re: Mail Anhang ?

    So kann man dir nicht helfen, da "bekomme es nicht hin" keine brauchbare Problembeschreibung darstellt.
    Auch wissen wir überhaupt nicht, was deine Funktion add_attachment() überhaupt machen soll.

    Vorschlag: Such mal nach dem Thema, dass hatten wir hier schon diverse Male. Da gibt's reichlich fertige Lösungen/Klassen für - das ist wahrscheinlich zielführender, als jemandem, der "fast keien Kenntnisse in php" hat, jetzt detailiert zu erklären, wie es geht und was er ggf. falsch gemacht hat.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hallo,

      also, ich ahbe mich den Threads im FOrum auseinander gesetzt und folgendes beispiel genutzt: http://www.php-resource.de/forum/sho...99#post312099. Dabei habe ich meinen Code ergänzt, sieh Code. Allerdings wird der Anhang nicht mitgenommen.
      PHP-Code:
      <html>
      <head>
      <title>Mailer</title>
      </head>
      <body>

      <?php

      //****************************************
      // Start Mailer

      if($abschicken)
      {
          
          
      //**************************************
          // Externe Datei schreiben 
          
          // Datei anlegen
          
      $file fopen("rohs.txt""w+");
          
      $file 'rohs.txt';
          
      $filename 'rohs_name.txt';
          
          
      // Sichergehen, dass die Datei existiert und beschreibbar ist
          
      if (is_writable($file)) {
          
             
      // Wir öffnen $filename im "Anhänge" - Modus.
             // Der Dateizeiger befindet sich am Ende der Datei, und
             // dort wird $somecontent später mit fwrite() geschrieben.
             
      if (!$handle fopen($file"a+")) {
                   print 
      "Kann die Datei $filename nicht öffnen";
                   exit;
             }
          
             
      // Schreibe $somecontent in die geöffnete Datei.
             
      if (!fwrite($handle$somecontent)) {
                 print 
      "Kann in die Datei $filename nicht schreiben";
                 exit;
             }
          
             print 
      "<p>Fertig. Die Datei $filename wurde editiert: <ul><li>$somecontent</li></ul><p>";
          
             
      fclose($handle);
          
          } else {
             print 
      "Die Datei $filename ist nicht schreibbar";
          }
          
          
      // Ende Datei schreiben
          // **********************************
          
         
      if(empty($somecontent) || empty($name) || empty($email) || empty($text))
         {
            echo 
      "Bitte gehen Sie zur&uuml;ck und f&uuml;llen Sie alle Felder aus!";
         }
         else
         {
                 
      $boundary strtoupper(md5(uniqid(time())));
            
      $mailnachricht .= "MIME-Version: 1.0";
                  
      $mailnachricht .= "\ncontent-Type: Multipart/Mixed; Boundary=$Boundary";
                  
      $mailnachricht .= "\n\nThis Is A Multi-Part Message In Mime Format  --  Dies Ist Eine Mehrteilige Nachricht Im Mime-Format";
                  
      $mailnachricht .= "\n--$Boundary"
                  
      $mailnachricht .= "\ncontent-Type: Text/Plain";
                  
      $mailnachricht .= "\ncontent-Transfer-Encoding: 8Bit\n\n\n";
            while(list(
      $feld,$wert)=each($HTTP_POST_VARS))
            {
               if(
      $feld!="abschicken")
               {
                  
      $mailnachricht.=ucfirst($feld).": $wert\n";
               }
            }
            
      $file_content fread(fopen($file,"r"),filesize($file));
                  
      $file_content chunk_split(base64_encode($file_content));
            
      $mailnachricht .= "\n--$boundary--";
                  
      $mailnachricht .= "\nContent-Type: application/octetstream; name=\"$filename\"";
                  
      $mailnachricht .= "\nContent-Transfer-Encoding: base64";
                  
      $mailnachricht .= "\nContent-Disposition: attachment; filename=\"$filename\"";
                  
      $mailnachricht .= "\n\n$file_content";
                  
      $mailnachricht .= "\n--$boundary--";
            
      $mailnachricht.="\nDatum/Zeit: ";
            
      $mailnachricht.=date("d.m.Y H:i:s");
            
      $mailbetreff="Daten RoHS";
            
      $mailbetreff.=$HTTP_POST_VARS[betreff];      
            
      mail("bueltge@zeiss.de"$mailbetreff$mailnachricht"From: $email");
            echo 
      "<p>Vielen Dank für Ihre eMail!</p>";
         }
      }
      else
      {
         echo 
      "Ein Fehler ist aufgetreten.";
      }

      // Ende Mailer


      ?>

      <p><a href="rohs.php">zur&uuml;ck</a></p>
      </body>
      </html>
      Vielen Dank für eure Mühe.
      LG

      Kommentar


      • #4
        Ist doch nicht Schlimm...

        Hallo,

        Hatte das Problem auch.
        Habe dann hier im Formum auch was gefunden und es geringfügig angepasst.
        Viel Erfolg.

        PHP-Code:
        <?php

        $filename 
        "ResultFile.txt";
        $handle fopen ($filename"r");
        $inhalt fread ($handlefilesize($filename));
        fclose($handle);

        $email "Betreff hier einfuegen";
        $mailheader  "From: $email\nReply-To: $email\nX-MAILER: PHP/" phpversion();

        $mailtext "begin 666 ResultFile.txt\r\n"//hier Dateinamen angeben
        $mailtext .= convert_uuencode($inhalt);
        $mailtext .= "end\r\n";
        $mailtext .= "hier mailtext";
        mail('hallo@localhost.de',$email,$mailtext,$mailheader);

        //Quelle: [url]http://www.php-resource.de/
        ?>
        --------------------------------------------
        Lebe lieber ungewöhnlich!!

        Kommentar

        Lädt...
        X