E-mail mit Anhang

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

  • E-mail mit Anhang

    Hallo,
    ich hätte mal eine Frage. Naja bin neu in php und bin noch dabei die Grundlagen usw. zu lernen aber trotzdem ist da eine Sache die mir auf dem Herzen liegt. Ähh ja das sollte eig. ein kontaktformular werden das mir eine e-mail mit einem Anhang sendet. Der anhang soll ein Bild sein das der user mit einem Datei_upload hochgeladen hat. Aber leider passt da was nicht ich bekomme keine mail .,. Naja ich poste mal den code und hoffe ihr könnt mir helfen.

    Code:
    Choose a file to upload: <input name="uploadedfile" type="file" /><br />
    <input type="submit" value="Upload File" />
    
    <?php
    function mail_att($to,$subject,$message,$anhang)
       {
         $to= "storestore@web.de";
    $anhang = array();
    $anhang["name"] = $_FILES['datei_feld']['name'];
    $anhang["size"] = $_FILES['datei_feld']['size'];
    $anhang["type"] = $_FILES['datei_feld']['type'];
    $anhang["data"] = implode("",file($_FILES['datei_feld']['tmp_name']));
    
    mail_att("storestore@web.de","Email mit Anhang","Im Anhang ist eine Datei",$anhang);
    }
    ?>
    Ok, danke im voraus
    gruß Programmieren

  • #2
    Hallo,

    der Code ergibt leider überhaupt keinen Sinn, nicht zuletzt wegen des rekursiven Aufrufs. Mit der mail()-Funktion kann man so etwas bewerkstelligen, aber dann musst du dich schon gut mit den RFCs auskennen. Daher gibt es bereits viele fertige PHP-Mailerklassen, die man benutzen kann, um diese Aufgabe zu vereinfachen. Einfach mal googlen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hier gleich ein Beispiel: – Swift Mailer

      Meiner Meinung nach mit Abstand die beste Mailer-Klasse, benutze sie schon sehr lange und bisher hatte ich noch kein einziges Mal ein Problem damit. Auch Anhänge funktionieren einwandfrei.
      This is what happens when an unstoppable force meets an immovable object.

      Kommentar


      • #4
        Ok, danke für die schnellen Antworten. ICh schau es mir mal an und dann melde ich mich wieder. Ähh also so mit eine mail() Funktion ist nicht möglich oder zu unsicher. Ist das richtig Was macht so eine mailer klasser eig. ist das ein ersatz für die mail-funktion oder ist das ein eigener Server oder was habe ich mir darunter vorzustellen?
        Ist sowas kostenlos?
        mfg Programmieren
        Zuletzt geändert von Programmieren; 27.08.2011, 14:26.

        Kommentar


        • #5
          Richtig, mail() ist eher für erfahrene Coder geeignet. Diese Mailer benutzen es meist ebenfalls, aber es gibt auch viele, die parallel dazu oder ausschließlich socketbasierten Versand unterstützen. Bei Swiftmailer kann man es sich meines Wissens nach aussuchen. Kostenlos sind die meisten auch.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Mit dem Mail + Mime Package von Pear kannst du auch relativ einfach Attachments versenden:

            Pear Mail
            :: BackTix - Textlink Marktplatz
            :: Online PHP Formular Manager & Generator
            :: PHP Gästebuch Script | PHP HTAccess Passwortschutz Generator

            Kommentar


            • #7
              OK, danke für die Info. Dieser Mailer sind des wirklich richtige Programme wie z.b. ein editor oder ist es einfach ein code den man eingibt? Nach dem link von ApoY2k ist es nur ein code zum Angeben (Ohh hätte ich fast vergessen, ein fettes Danke an ApoY2k und natürlich auch an AmicaNoctis und an Scar). Ist es sowas wie PHPMailer | Download PHPMailer software for free at SourceForge.net ?
              Swift-mail sieht sehr gut aus ich werde es mir mal genauer angucken
              Naja also ein fettes von mir an alle für die netten, schnellen und hilfreichen Infos.
              mfg Programmieren
              Zuletzt geändert von Programmieren; 27.08.2011, 18:32.

              Kommentar


              • #8
                Das sind einfach php-Dateien, die du in deine Datei einbindest. Danach steht dir in deinem Code die Funktionalität zur Verfügung.
                This is what happens when an unstoppable force meets an immovable object.

                Kommentar


                • #9
                  Achso, ok jetzt hab ichs kappiert. Ich werde es mal mit der von dir geposteten Seite versuche. Danke. Jetzt nur mal aus Interesse was war den am von mir geposteten code eig. falsch? Würde mich echt freuen wenn mir jemand ein tipp geben könnte. Ich habe nämlich in "google" folgendes eingegeben: "PHP email mit anhang" und da ist eine Seite erschienen die es o beschrieben hat. Hier mal den Link PHP-Einfach.de - Email mit Anhang
                  Da steht wie man das mit einem datei_upload machen muss.
                  Ok, ich werde es jetzt mit der mailer-klasse versuchen. Danke

                  Kommentar


                  • #10
                    Achso, ok jetzt hab ichs kappiert, danke. Leider gibt es für swiftmail nur Anleitungen in Englisch. Da mein 7klass-Englisch noch nicht so ausgeprägt ist habe ich mich entschieden es mit zend_mail oder mit AMC_mail zu versuchen. Hat jemand mit einen von denen schon mal Erfahrung gemacht?. Jetzt nur mal aus Interesse was war den am von mir geposteten code eig. falsch? Würde mich echt freuen wenn mir jemand ein tipp geben könnte. Ich habe nämlich in "google" folgendes eingegeben: "PHP email mit anhang" und da ist eine Seite erschienen die es so beschrieben hat. Hier mal den Link PHP-Einfach.de - Email mit Anhang
                    Da steht wie man das mit einem datei_upload machen muss.
                    Ok, ich werde es jetzt mit der mailer-klasse versuchen. Danke
                    Danke im voraus
                    mfg Programmieren
                    Zuletzt geändert von Programmieren; 28.08.2011, 13:31.

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php
                      /*01*/function mail_att($to,$subject,$message,$anhang) {
                      /*02*/    $to"storestore@web.de";
                      /*03*/    $anhang = array();
                      /*04*/    $anhang["name"] = $_FILES['datei_feld']['name'];
                      /*05*/    $anhang["size"] = $_FILES['datei_feld']['size'];
                      /*06*/    $anhang["type"] = $_FILES['datei_feld']['type'];
                      /*07*/    $anhang["data"] = implode("",file($_FILES['datei_feld']['tmp_name']));
                      /*08*/
                      /*09*/    
                      mail_att("storestore@web.de","Email mit Anhang","Im Anhang ist eine Datei",$anhang);
                      /*10*/}
                      ?>
                      01: $to, $subject, $message sind vermutlich Strings, aber was stellt $anhang dar? Da es in der Funktion explizit definiert wird, ist eigentlich total egal, was du dort reinstopfst, also ist der Parameter Unsinn.
                      02: Wieso wird der Parameter ignoriert und fest vorgegeben? Wieder Unsinn.
                      03: Siehe 01
                      04–07: Eine Funktion, die Superglobals (hier $_FILES) ausliest, ist schlechter Stil. Die Daten werden jetzt in das Array $anhang kopiert, aber was soll das bringen?
                      09: Rekursiver Aufruf mit festen Parametern. Jetzt wird die Funktion also nochmal aufgerufen, als letzter Parameter wird das zusammengeklöppelte Array übergeben, aber dieser Parameter war ja ohnehin für die Tonne, siehe 01. Die übrigen Parameter wurden auch nicht sinnvoll verwendet. Die Rekursion ohne Abbruchbedingung führt zu einem enlosen Wiederaufruf der Funktion.

                      Kurz, du hast eine infinite do-nothing-machine gebaut.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Ok, verstehe. Gut:
                        1. $anhang ist draußen
                        2. Parameter werden nicht mehr ignoriert
                        3 ?!?
                        4. Leider weiß ich nicht was man als ersatz nehmen könnte. Aber ich glaube das ist die einfachste Form, oder.
                        4.2 Naja, das was ich jetzt mit $_FILES definiert habe soll in die variable $anhang
                        9. Habs mit mail_att(); beendet. Aber wie soll er es mir sonst schicken? Mit einer mail function? Hmm, das wäre doch eine idee oder.

                        Naja hier mal das ausgebesserte:
                        Code:
                        <?php
                        /*Anhang weg!*/       function mail_att($to,$subject,$message) {
                        /*keine vorgaben mehr!*/    
                        /*!?!*/    $anhang = array();
                        /*Leider weiß ich nicht 
                        wie man
                        das besser
                         machen 
                        kann*/    $anhang["name"] = $_FILES['datei_feld']['name'];
                        /*05*/    $anhang["size"] = $_FILES['datei_feld']['size'];
                        /*06*/    $anhang["type"] = $_FILES['datei_feld']['type'];
                        /*07*/    $anhang["data"] = implode("",file($_FILES['datei_feld']['tmp_name']));
                        /* Bin ich mir leider noch nicht sicher!*/
                        
                           mail_att();
                        ?>
                        Zuletzt geändert von Programmieren; 28.08.2011, 17:16.

                        Kommentar


                        • #13
                          Warum nimmst du nicht einfach den kompletten Code von der Tutorial-Seite? Das bringt dir doch im Endeffekt mehr, als diese Funktion selbst falsch nachzubauen, oder?
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Ich habe sie eig. reingezogen, also das mit dem Dateiupload. Aber mein bplaced hat gemekert das die mail_att funktion fehlt

                            Kommentar


                            • #15
                              Zitat von Programmieren Beitrag anzeigen
                              Ich habe sie eig. reingezogen, also das mit dem Dateiupload. Aber mein bplaced hat gemekert das die mail_att funktion fehlt
                              Kann ich das eig. auch mit einer normalen mail funktion machen. Ich habe ja jetzt den von mir bearbeiteten code gepostet. Darin fehlt nur noch die mail();
                              funktion. Wie wende ich sie da am besten an.

                              PS: Wow ein Moderator antwortet mir auch mal. Ich bin ja auch in einem c-sharp-forum aber da schert sich kein Moderator auf meine fragen anständig zu antworten. Echt danke. Ich werde euch auf jeden fall weiter empfehlen!!!

                              Kommentar

                              Lädt...
                              X